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

Blazor:如何在bind:set和bind:after中传递自定义参数?

.NET 7 Blazor绑定语法:给bind:after/bind:set传递额外参数

当然可以给bind:after或bind:set传递额外参数,核心是利用闭包捕获上下文里的ServiceId,或者在bind:set的自定义逻辑里直接传入参数,两种方式都能满足你定位待更新实体的需求,具体实现如下:

方式一:使用bind:set自定义赋值逻辑

bind:set允许你完全控制绑定变量的赋值过程,同时可以在逻辑里直接调用带额外参数的方法,完美替代原来的@onchange写法:

原来的代码:

<InputText @onchange="@(code => OnCodeChanged(code, r.ServiceId))" />

替换为bind:set的写法:

<InputText @bind-Value="Code" @bind-Value:set="(newValue) => {
    // 先完成绑定变量的赋值
    Code = newValue;
    // 调用带ServiceId的方法
    OnCodeChanged(newValue, r.ServiceId);
}" />

方式二:使用bind:after结合闭包

bind:after是在绑定变量更新完成后触发的回调,虽然它本身是无参委托,但可以通过闭包捕获当前上下文的r.ServiceId,写法如下:

<InputText @bind-Value="Code" @bind-Value:after="() => OnCodeChanged(Code, r.ServiceId)" />

这里bind:after触发时,Code已经完成更新,直接使用最新值即可,同时传入捕获到的r.ServiceId,同样能实现准确定位实体的需求。

两种方式各有适用场景:bind:set适合需要自定义赋值逻辑(比如参数校验、格式转换)的场景;bind:after则更侧重绑定完成后的后续操作,你可以根据实际需求选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:40:35