c# - 如何在 Blazor 中调用带参数的函数?
问题描述
我正在与 Blazor 合作。我正在学习这个框架,但我遇到了问题。我可以调用 JavaScript 函数,但是当我调用 C# 函数时,会出现以下错误:
严重性代码 描述 项目文件行抑制状态错误 CS0411 无法从用法推断方法“RuntimeHelpers.CreateInferredEventCallback(object, Action, T)”的类型参数。尝试明确指定类型参数。
我使用 Radzen,这是我的代码块:
<td>
<RadzenDropDown AllowClear="true" @bind-Value="(() => MultipleGetUser(item.UserID))" Multiple="true" Placeholder="Select..." Data="@UserList" TextProperty="UserName" ValueProperty="UserID" Change="@(args => ChangeUser(args, ""))" />
</td>
"@bind-Value"中的此错误。如何调用带参数的函数?
解决方案
您不能绑定到函数,只允许字段或属性。
@bind- 意味着它是双向的,所以你需要一些你可以设置的东西。
但是,您可以创建一个计算属性:
...
<td>
<RadzenDropDown AllowClear="true" @bind-Value="@this[item.UserID]" Multiple="true" Placeholder="Select..." Data="@UserList" TextProperty="UserName" ValueProperty="UserID" Change="@(args => ChangeUser(args, ""))" />
</td>
...
@code {
User this[int id] // I assume you have a User class, replace by the one you use
{
get => MultipleGetUser(id);
set => // as I don't how you can set your user by its Id I let you implement this code
}
}
推荐阅读
- apache-beam - apache beam for python 是否支持商业化的 flink runner?
- java - 如何使用 OpenJ9 Xtrace 选项转储方法参数的内容
- powershell - 如何使用 PowerShell 中的函数从命令行执行?
- javascript - 如何使用模式更改工具提示的外观:Chart.js 中的索引
- raku - (标识符)术语与常量与空签名例程
- ios - Swift:TableViewController 中的 UIControl 在被 ViewController 调用时发现为零
- c# - 从现有字符串构建新的类似路径的字符串
- java - 针对不同用户的单独活动
- sql - 使用通配符加入
- node.js - 无法在nodejs中获取基板序列号