如何从Razor页面上的UserId通过.NetCore身份获取用户名?

问题描述 投票:0回答:1

我需要基于UserId从.Net Core 3.0中的IdentityUser类获取帖子作者的UserName。用户ID是我的帖子表中的一列。

到目前为止,我已经尝试添加此内容

@@使用Microsoft.AspNetCore.Identity@inject UserManager UserManager

@ {var用户名=等待UserManager.FindByIdAsync(Model.Posts.Userid).Result.UserName}

不幸的是,这给出了运行时错误“对象引用未设置为对象的实例。”

我无法将数据库中的脚手架添加到上下文类,因为当我这样做时,由于您添加到上下文中的任何表都被视为默认IdentityUser类的重复,因此该应用程序将无法运行。

我曾尝试让Google搜索“ .net core按ID获取用户名”之类的内容,但我发现的所有示例仅获取登录用户的用户名或ID。我想获取用户名,该用户名与posts表中的作者ID匹配。

一个更好的解决方案是从我制作的PostsService类中获取UserName,但我不知道如何获取不在ApplicationDbContext中的内容的外键值

.net-core razor-pages asp.net-core-identity
1个回答
0
投票

您必须注入UserManager

例如:

@using Microsoft.AspNetCore.Identity

@inject UserManager<User> UserManager

然后在视图中

@UserManager.GetUserName(User)
© www.soinside.com 2019 - 2024. All rights reserved.