我创建了一个“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
)和其他东西,但无法弄清楚如何让它工作。如果我需要提供更多信息,请告诉我。
每个文档/教程仅适用于单击按钮时的非异步无效调用。
最佳答案
您需要正确调用Delete
方法并使其返回Task
而不是void
:
<button onclick="@(async () => await Delete(person.Id))">❌</button>
@functions {
// ...
async Task Delete(Guid personId)
{
await this.PersonRepository.Delete(personId);
}
}
关于c# - 在 blazor 中单击按钮时执行异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55497072/