如何解决如何在Blazor中将带有参数的onclick添加到按钮?
我在Blazor服务器端应用程序中具有以下代码:
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>Email</th>
<th>Name</th>
</tr>
</thead>
<tbody>
@foreach (var applicationUser in ApplicationUsers)
{
string userId = applicationUser.Id;
Guid? personId = applicationUser.PersonId;
<tr>
<td>@applicationUser.Email</td>
<td>@applicationUser.PersonName</td>
@if (personId != null)
{
<td>
<button class="btn btn-block btn-primary" @onclick="() => ShowEditPersonDialog(personId)" style="color: rgb(255,255,255); background-color: rgb(49,56,215);" @type="button">Edit Person</button>
</td>
}
</tr>
}
</tbody>
</table>
</div>
但是这个:
@onclick="() => ShowEditPersonDialog(personId)"
...不起作用。因为它位于组件上方,直到第一行的第一个按钮加载(有4个用户-应该加载4行),该按钮才能正确呈现,并引发未处理的异常:
我尝试过:
-
@onclick="() => ShowEditPersonDialog(personId)"
-上面显示的例外情况 -
@onclick="(e) => ShowEditPersonDialog(e,personId)"
-上面显示的例外情况 -
@onclick="e => ShowEditPersonDialog(e,personId)"
-上面显示的例外情况 -
@onclick="@(e => ShowEditPersonDialog(e,personId))"
-上面显示的例外情况 -
@onclick="(e) => ShowEditPersonDialog(e)"
-上面显示的例外情况 -
@onclick="e => ShowEditPersonDialog(e)"
-上面显示的例外情况 -
@onclick="@(e => ShowEditPersonDialog(e))"
-上面显示的例外情况 -
@onclick="() => ShowEditPersonDialog()"
-上面显示的例外情况 -
@onclick=@"() => ShowEditPersonDialog(personId)"
-无法编译,语法错误 -
@onclick="@(() => ShowEditPersonDialog(personId))"
-上面显示的例外情况 -
onclick="() => ShowEditPersonDialog(personId)"
-编译,运行和渲染,但按钮无响应 -
onclick="@(() => ShowEditPersonDialog(personId))"
-无法编译-无法将lambda表达式转换为类型'object',因为它不是委托类型 -
onclick="(e) => ShowEditPersonDialog(e,personId)"
-编译,运行和渲染,但按钮无响应 -
onclick="e => ShowEditPersonDialog(e,personId)"
-编译,运行和渲染,但按钮无响应 -
onclick="@((e) => ShowEditPersonDialog(e,personId))"
-无法编译-无法将lambda表达式转换为类型'object',因为它不是委托类型 -
onclick="@(e => ShowEditPersonDialog(e,personId))"
-无法编译-无法将lambda表达式转换为类型'object',因为它不是委托类型 -
onclick="@(e => ShowEditPersonDialog(e))"
-无法编译-无法将lambda表达式转换为类型'object',因为它不是委托类型
我该怎么写这个东西?我只希望按钮将给定行的相关personId传递给ShowEditPersonDialog方法。
解决方法
将按钮更改为此-从@
删除type="button"
并使用@onclick="@(() => ShowEditPersonDialog(personId))"
<button class="btn btn-block btn-primary"
@onclick="@(() => ShowEditPersonDialog(personId))"
style="color: rgb(255,255,255); background-color: rgb(49,56,215);"
type="button">Edit Person</button>
将内联按钮css样式移动到css文件中的类也很好,因此HTML标记更易于阅读:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。