Blazor中组件参数传递主要通过[Parameter]特性实现,要求属性为public且可set;支持简单类型、RenderFragment子内容和EventCallback事件回调,并可设默认值或可空类型。
Blazor 中向组件传递参数主要通过 组件参数(Component Parameters) 实现,本质是给组件的 public 属性打 [Parameter] 特性。这是最常用、最直接的方式。
在子组件中定义带 [Parameter] 特性的 public 属性,父组件在引用时用属性语法传值:
Counter.razor)中写:@code {
[Parameter] public int StartCount { get; set; } = 0;
[Parameter] public string Title { get; set; } = "计数器";
}
[Parameter] 不会被识别为输入参数。用 [Parameter] public RenderFragment ChildContent { get; set; } 接收嵌套内容:
Card.razor)中定义:[Parameter] public RenderFragment ChildContent { get; set; }
@ChildContent
标题
这里是卡片正文
让子组件“通知”父组件,用 EventCallback:
[Parameter] public EventCallback OnClick { get; set; }
await OnClick.InvokeAsync("按钮被点了");
@code 块中定义:private void HandleClick(string msg) { ... }
参数可以设默认值(C# 属性默认值或构造函数初始化),不传也不会报错:
[Parameter] public bool IsEnabled { get; set; } = true;[Parameter] public string? Description { get; set
; } 表示可为空,不传即为 null。bool HasValue 配合 nullable 引用类型 + 初始化检查,但 Blazor 本身不提供“是否传了”的元信息,一般靠默认值语义区分。基本上就这些。参数传递不复杂但容易忽略大小写和 public/set 要求,写完记得检查编译错误提示 —— 它通常会明确告诉你哪个属性没加 [Parameter] 或不可访问。