【发布时间】:2021-02-08 11:34:20
【问题描述】:
我有一个数据库,其中存储了一些用户。如果用户登录,我想在单击按钮时读出用户 ID 并显示它。这是我目前所拥有的:
@page "/UserId"
@using Microsoft.AspNetCore.Identity;
@inject UserManager<IdentityUser> userManager
@using Microsoft.AspNetCore.Http
@inject IHttpContextAccessor _HttpContext
<div>
@UserID;
</div>
<button class="btn btn-getstarted" @onclick="UsersID">Get UserID</button>
@code {
private UserManager<IdentityUser> _userManager;
private string UserID;
private string UsersID()
{
GetId(userManager);
return UserID;
}
public async void GetId(UserManager<IdentityUser> userManager)
{
_userManager = userManager;
var user = await _userManager.GetUserAsync(_HttpContext.HttpContext.User);
UserID = user.Id;
}
}
它以某种方式向我抛出了错误
CS1503 Argument 2: cannot convert from 'method group' to 'EventCallback' 我不明白。我也知道在这种情况下它不是调用其他函数的最佳方法,但它似乎效果最好?有没有更好的方法来获取当前User的ID并显示出来?
我提到了this link here,但它对我不起作用。有什么建议可以做吗?
【问题讨论】:
-
@onclick="UsersID"请解释一下这段代码要做什么。 -
Razor 组件不支持 SignInManager
和 UserManager 。 IHttpContextAccessor(Razor 组件不支持 HttpContext>。 -
@mjwills 的目标是获取用户 ID,如果此按钮将被单击。我尝试了使用
@onclick="UsersID"和字符串函数的解决方法,但它没有用。如果我插入@onclick="GetId",错误将是相同的。 -
从这个开始:chrissainty.com/… 执行提供的代码,然后回来提问。实际上,如果你想学习 Blazor,你应该在接下来的几个月里把 @chrissinty 的网站作为你的家,然后来这里提问。您也可以使用 blazor-university 网站。
标签: c# asp.net-core blazor