c# - 在 blazor 中单击按钮时执行异步方法
问题描述
我创建了一个“Razor Components”项目。我试图在按下按钮时执行异步方法,但还无法弄清楚语法。
这是我的Index.razor:
@page "/"
@inject GenericRepository<Person> PersonRepository
@foreach (var person in persons)
{
<button onclick="@(() => Delete(person.Id))">❌</button>
}
@functions
{
async void Delete(Guid personId)
{
await this.PersonRepository.Delete(personId);
}
}
当我单击按钮时,什么也没有发生。我尝试了各种返回类型(例如Task
)和东西,但不知道如何使它工作。如果我需要提供更多信息,请告诉我。
每个文档/教程仅适用于按钮单击时的非异步 void 调用。
提前致谢。
解决方案
您需要Delete
正确调用该方法并使其返回Task
而不是void
:
<button onclick="@(async () => await Delete(person.Id))">❌</button>
@functions {
// ...
async Task Delete(Guid personId)
{
await this.PersonRepository.Delete(personId);
}
}
推荐阅读
- .net - 为什么 IIS 中的 Office Automation Web App 不能在 Windows Server 上运行?
- python - 使用 pymongo 进行反向搜索
- presto - EXPLAIN ANALYZE 默认为执行的查询
- vuejs2 - 触发组件对话框
- c++ - 前 n 个素数的 Eratosthenes 筛法
- python - 使用 python 和 openpyxl 从站点更快地提取数据
- docker - Docker Compose 扩展不覆盖配置
- nestjs - ApiProperty 不反映我想要的数据类型
- shopify - 使用 FarApp 从 Shopify 到 NetSuite 的自定义映射
- r - 随机森林预测图