You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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,完全颠倒了赋值方向,等于没给类属性传入任何有效数据。

修复步骤

  1. 修正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;
    }
}
  1. 保留原有RenderFragment和调用逻辑
    你的RenderFragment<Temp1>定义以及@CreateButton(new("x", "y"))的调用方式本身是正确的,修正构造函数后,就能正常渲染出显示"x aaa"和"y bbb"的按钮了。

补充说明

VS 2022没报错是因为这段代码语法完全合法,只是存在逻辑错误——编译器无法识别你搞反了赋值顺序,这类问题只能通过代码审查或调试才能发现。

内容的提问来源于stack exchange,提问作者Larry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 22:44:58