User.Identity.GetUserName() return错了
User.Identity.GetUserName() return wrong
我不太确定 Razor 视图中的这个简单代码有什么问题:
@using Microsoft.AspNet.Identity
<span>@Html.DisplayName(User.Identity.GetUserName())</span>
我检查了 AspNetUsers
table 字段 UserName
中的值,它是 xxx@example.com
.
相反,return xxx@example.com
,它只是 returns com
。
出于好奇,我把它改成了xxx@example.net
,实际上它只是returns net
。
我尝试搜索一些文章,但一无所获。该代码实际上有什么问题?
当你只想显示identity下可用的'User Name'的值时,这里的DisplayName
有什么用?显示名称方法尝试在您传递给方法的嵌套 属性 上找到可用的属性 display
。
你还记得这些 MVC 方法是如何工作的吗??每当我们在此类方法中传递任何表达式时,它都会将其视为嵌套 属性 并尝试找到最后一个 属性 节点。
c.User.Name
的示例它将尝试使用 name
因此当我们传递 xxx@example.net
时它会尝试在嵌套表达式中找到最后一个 属性 即 xx@example.net
并且值将是 net
.
但是当你只想显示值时使用
<span>@User.Identity.GetUserName()</span>
我不太确定 Razor 视图中的这个简单代码有什么问题:
@using Microsoft.AspNet.Identity
<span>@Html.DisplayName(User.Identity.GetUserName())</span>
我检查了 AspNetUsers
table 字段 UserName
中的值,它是 xxx@example.com
.
相反,return xxx@example.com
,它只是 returns com
。
出于好奇,我把它改成了xxx@example.net
,实际上它只是returns net
。
我尝试搜索一些文章,但一无所获。该代码实际上有什么问题?
当你只想显示identity下可用的'User Name'的值时,这里的DisplayName
有什么用?显示名称方法尝试在您传递给方法的嵌套 属性 上找到可用的属性 display
。
你还记得这些 MVC 方法是如何工作的吗??每当我们在此类方法中传递任何表达式时,它都会将其视为嵌套 属性 并尝试找到最后一个 属性 节点。
c.User.Name
的示例它将尝试使用 name
因此当我们传递 xxx@example.net
时它会尝试在嵌套表达式中找到最后一个 属性 即 xx@example.net
并且值将是 net
.
但是当你只想显示值时使用
<span>@User.Identity.GetUserName()</span>