gpt4 book ai didi

c# - 在 blazor 中单击按钮时执行异步方法

转载 作者:太空狗 更新时间:2023-10-30 00:22:43 25 4
gpt4 key购买 nike

我创建了一个“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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com