如何在Razor Page中为Razor组件设置EventCallback参数
问题核心原因
你当前的写法有两处错误导致EventCallback无法触发:
- 使用
<component>标签向Razor组件传递参数时,所有参数必须加param-前缀,你写的OnClick="test"没有加前缀,组件无法识别到这个参数的赋值 - 回调方法不能定义在
@{ }局部代码块中,需要放在@functions块里且标记为public,否则组件没有权限访问该方法
修正后的Razor Page代码
<!-- 给OnClick参数加上param-前缀 --> <component type="typeof(RazorTest.Components.Test)" param-InitialValue="0" param-OnClick="test" render-mode="Server" /> <!-- 回调方法放在public的functions块中 --> @functions { public void test(int count = 0) { // 这里加断点即可看到点击组件按钮后触发回调,count就是组件传回来的当前计数 var t = "hello"; } }
补充说明
如果你要使用组件里定义的Action类型的OnClickNew参数,传递规则完全一致,只需要在标签里写param-OnClickNew="你的回调方法名"即可。
内容的提问来源于stack exchange,提问作者Rob Chelton
相关产品推荐
相关产品推荐

