【发布时间】:2017-08-22 17:16:13
【问题描述】:
我是 ASP.Net MVC Web 开发的初学者。我想知道如何在布局文件中访问我的 ApplicationUser 模型中添加的额外属性?
到目前为止,如果我必须访问 razor 文件中的属性,我在 Razor 文件的顶部添加 @model myModel,然后我可以通过 @Model.MyProperty 访问该属性。
假设我在Application User 中添加了FirstName 属性,如下所示:
public class ApplicationUser : IdentityUser
{
public string FirstName { get; set; }
}
现在在我的登录部分中,我有以下代码。
@using Microsoft.AspNet.Identity
@if (Request.IsAuthenticated)
{
using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))
{
@Html.AntiForgeryToken()
<ul class="nav navbar-nav navbar-right">
<li>
@Html.ActionLink("Hello " + User.Identity.GetUserName() + "!", "Index", "Manage", routeValues: null, htmlAttributes: new { title = "Manage" })
</li>
<li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li>
</ul>
}
}
假设我也想显示 FirstName 而不是 User.Identity.GetUserName() 我该怎么做。
以下是用户在注册过程中将看到的 RegisterViewModel。
public class RegisterViewModel
{
// rest property removed for brevity
[Required]
public string FirstName { get; set; }
}
现在,当返回视图时,RenderBody() 是与该控制器操作相关的实际 CSHTML 文件被渲染的地方。但在我的场景中,我需要在布局文件中访问 applicationUser 的属性,这对所有人来说都是通用的。请指导我。
我可以这样做吗: User.Identity.GetFirstName 或类似的东西?
【问题讨论】:
标签: c# asp.net-mvc razor asp.net-mvc-5