User.Identity.GetUserName()返回错误[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了User.Identity.GetUserName()返回错误[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我不太确定Razor视图中这个简单代码有什么问题:

@using Microsoft.AspNet.Identity
<span>@html.DisplayName(User.Identity.GetUserName())</span>

我检查了我的AspNetUsers表字段UserName中的值,它是xxx@example.com

相反,返回xxx@example.com,它只返回com

为了好奇,我把它改为xxx@example.net,实际上它只是返回net

我试图搜索一些文章而一无所获。该代码实际上有什么问题?

答案

当你只想显示身份下可用的“用户名”的值时,在这里使用DisplayName是什么意思?显示名称方法尝试在传递给方法的嵌套属性中找到可用的属性display

你还记得这些MVC方法是如何工作的吗?每当我们在这样的方法中传递任何表达式时,它都将它视为嵌套属性并尝试查找最后一个属性节点。

例如,对于c.User.Name,它会尝试使用name,所以当我们传递xxx@example.net时,它会尝试在嵌套表达式中找到xx@example.net的最后一个属性,值将为net

但是当你只想显示价值时才使用

<span>@User.Identity.GetUserName()</span>

以上是关于User.Identity.GetUserName()返回错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章

向通过 Google OAuth2 创建的用户添加角色或声明