VS2022中使用Blazor无法正确引用代码后置类的问题
解决Blazor分部类中@title不存在的问题
问题根源
将组件的@code块移到分部类后出现@title在当前上下文中不存在错误,核心是分部类的定义不符合Blazor组件的规则,常见问题包括:
- 分部类的类名与razor组件文件名不匹配
- 属性的访问修饰符不是
public或protected(Blazor模板仅能访问公共/受保护成员) - 分部类未正确继承
ComponentBase(Blazor组件的默认基类)
正确的实现方式
假设你的组件文件名为MyCustomComponent.razor,对应的分部类文件需命名为MyCustomComponent.razor.cs,代码如下:
public partial class MyCustomComponent : ComponentBase { // 必须用public/protected修饰,模板才能访问 public string Title { get; set; } }
同时调整razor模板中的变量名(C#大小写敏感):
<div class="outer"> <span>@Title</span> </div>
关键注意点
- 分部类文件名必须与razor组件文件名完全一致,后缀为
.razor.cs - 分部类必须继承
ComponentBase - 模板中引用的属性,在分部类里必须是
public或protected修饰 - 严格匹配变量名的大小写,C#区分大小写
内容的提问来源于stack exchange,提问作者bilpor
相关产品推荐
相关产品推荐

