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

在Razor组件中从组件属性调用异步方法的正确方式

Blazor组件中EventCallback异步方法调用的写法对比

问题背景

在Razor组件中调用子组件时,经常需要通过EventCallback类型的属性(如OnClick)触发异步方法。针对这类场景,存在两种常见写法,现需确认二者的差异及规范性:

@* 写法1 *@
<MyButton OnClick=DoSomething>Click Me</MyButton>

@* 写法2 *@
<MyButton OnClick=@(async () => await DoSomething())>Click Me</MyButton>

@code {
    private async Task DoSomething(){ ... }
}

核心疑问

编译完成后,直接绑定方法名和使用异步委托这两种写法是否存在区别?我们应该优先选择哪一种?(注:代码运行无异常,仅需确认写法的规范性)

说明与结论

这两种写法没有唯一的“正确答案”,不同的技术观点都能为相关讨论提供有效依据,建议进一步深入学习Blazor的委托调用栈原理。多数开发者的困惑源于对调用栈中委托角色的误解,Shaun提供的示例对此做了最简洁清晰的展示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 18:21:59