Blazor Server应用中RenderFragment接收类参数为null问题求助
Blazor Server中RenderFragment参数属性为null的问题解决
问题根源
问题出在Temp1类的构造函数赋值顺序完全搞反,导致你传入的"x""y"根本没被赋值给类的属性,最终在RenderFragment里访问content.a和content.b时得到null。
看你的构造函数代码:
public Temp1 (string? a, string? b) { a = this.a; b = this.b; }
这里是把类的成员变量this.a(默认值null)赋值给了方法参数a,完全颠倒了赋值方向,等于没给类属性传入任何有效数据。
修复步骤
- 修正Temp1构造函数
把赋值顺序反过来,将传入的参数值赋给类的成员属性:
public class Temp1 { public string? a { get; set; } public string? b { get; set; } public Temp1(string? a, string? b) { this.a = a; this.b = b; } }
- 保留原有RenderFragment和调用逻辑
你的RenderFragment<Temp1>定义以及@CreateButton(new("x", "y"))的调用方式本身是正确的,修正构造函数后,就能正常渲染出显示"x aaa"和"y bbb"的按钮了。
补充说明
VS 2022没报错是因为这段代码语法完全合法,只是存在逻辑错误——编译器无法识别你搞反了赋值顺序,这类问题只能通过代码审查或调试才能发现。
内容的提问来源于stack exchange,提问作者Larry
相关产品推荐
相关产品推荐

