在使用 Blazor 开发 Web 应用时,组件参数的双向绑定 是一个非常实用的功能。它允许父组件和子组件之间同步更新数据,而无需手动编写事件回调逻辑。本文将从零开始,带你一步步掌握如何在 C# Blazor 中实现双向绑定,即使你是初学者也能轻松上手!

在 Blazor 中,组件之间通常通过 [Parameter] 属性传递数据。但默认情况下,这种传递是单向的——即父组件可以传值给子组件,但子组件无法直接修改父组件的数据。
为了解决这个问题,Blazor 提供了 @bind-{Property} 语法,实现双向绑定。这样,当子组件中的值发生变化时,父组件的数据也会自动更新。
假设我们要创建一个输入框组件 MyInput.razor,它接收一个字符串值,并允许用户编辑。
首先,在子组件中定义两个参数:
Value:用于接收当前值ValueChanged:用于通知父组件值已更改代码如下:
<input type="text" value="@Value" @oninput="OnInputChanged" class="hwf2d6-047f-9dcd-ad57 form-control" />@code { [Parameter] public string Value { get; set; } = string.Empty; [Parameter] public EventCallback<string> ValueChanged { get; set; } private async Task OnInputChanged(ChangeEventArgs e) { var newValue = e.Value?.ToString() ?? string.Empty; await ValueChanged.InvokeAsync(newValue); }}注意:ValueChanged 必须是 EventCallback<T> 类型,这样才能被 @bind 识别。
现在,我们在父组件(例如 Index.razor)中使用这个子组件,并启用双向绑定。
@page "/"<h3>双向绑定演示</h3><p>当前值: @myText</p><MyInput @bind-Value="myText" />@code { private string myText = "初始文本";}关键点在于 @bind-Value="myText"。这里的 Value 必须与子组件中定义的参数名一致(首字母大写),Blazor 会自动将其映射为 Value 和 ValueChanged。
使用 Blazor组件参数 的双向绑定有以下优势:
ValueChanged="@(val => myText = val)"v-model 或 [(ngModel)]@bind-PropertyName 中的 PropertyName 要与子组件的 [Parameter] public T PropertyName 一致Property 和 PropertyChanged(命名规则:属性名 + “Changed”)通过本文,你已经学会了如何在 C# Blazor 中实现组件参数的双向绑定。这项技术是构建交互式 Web 应用的基础,能极大简化数据流管理。无论你是刚接触 Blazor数据绑定,还是想优化现有项目,掌握双向绑定都是必不可少的技能。
记住关键词:Blazor组件参数、双向绑定、C# Blazor教程、Blazor数据绑定。多加练习,你很快就能熟练运用!
本文由主机测评网于2025-12-13发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025127292.html