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

Blazor中FluentButton点击事件设置R_Id参数报错求助

解决方案

核心问题:无法访问当前行的R_id

你遇到的错误是因为在TemplateColumn的作用域里,没有直接可用的R_id变量——必须通过@context获取当前行的RequestModel实例,才能拿到对应行的R_id值。

修改TemplateColumn内的按钮代码即可解决:

<TemplateColumn Title="Actions" Align="@Align.End">
    <FluentButton IconEnd="@(new Icons.Regular.Size16.Edit())" @onclick="@(e => Navigate(context.R_id))" />
</TemplateColumn>

关于AsEnumerable()导致的CS0411错误

FluentDataGrid使用IQueryable类型的Items时,会自动将分页、排序操作转换成对应的查询表达式(比如EF Core的LINQ查询),实现高效的服务器端分页/排序。如果转成IEnumerable,组件无法处理这些表达式转换,就会触发类型不匹配的CS0411错误。所以不要将IQueryable转为Enumerable,保持原类型即可。

额外检查点

  1. 确保Navigate方法的参数类型和RequestModel.R_id的类型完全匹配(比如R_id是int,Navigate也要接收int类型参数)。
  2. 如果@context提示类型不明,可以显式指定TemplateColumn的ItemType:
<TemplateColumn Title="Actions" Align="@Align.End" ItemType="RequestModel">
    <FluentButton IconEnd="@(new Icons.Regular.Size16.Edit())" @onclick="@(e => Navigate(context.R_id))" />
</TemplateColumn>

这样修改后,既解决了按钮点击的参数上下文问题,又能保留FluentDataGrid的分页排序功能,不会触发新错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:15:15