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()返回错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章