【发布时间】:2020-11-20 15:32:40
【问题描述】:
我试图在按下按钮时执行异步方法。代码编译没有问题,但是当按钮被点击时,该方法永远不会被调用。我已经使用了我可以使用的所有 google fu,但无济于事。我在语法上做错了吗?是我忘记导入某些东西还是我误解了它的工作原理?
@foreach (Data.Course cor in CourseList)
{
/...
<button class="btn btn-outline-primary" @onclick="@(async () => await EnrollCourse(cor.CourseId))">
Enroll
</button>
}
@functions{
private async Task EnrollCourse(int corid)
{
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
string userid = authState.User.Identity.Name;
await _db.EnrollCourse(corid, userid);
NavigationManager.NavigateTo($"/course/{corid}");
}
}
【问题讨论】:
-
字符串用户 ID = authState.User.Identity.Name;这不是电子邮件不是身份证吗?
-
你怎么知道这个方法从来没有被调用过?
-
是的,我用调试器验证了该方法永远不会被执行,数据也没有填充到数据库中
-
@functions还能用吗?您使用的是哪个 Blazor 版本? -
@HenkHolterman我在代码块和功能块中都试过了,从我看到的大多数人看来似乎把这样的代码放在功能块中。无论最新版本是什么
标签: c# razor blazor blazor-server-side razor-components