我是ASP.Net MVC Web開發的初學者。我想知道如何在佈局文件中訪問我的ApplicationUser模型中添加的額外屬性?如何訪問佈局文件中添加到ApplicationUser的模型屬性
截至目前,如果我必須訪問剃刀文件中的屬性,我在剃刀文件頂部添加@model myModel
,然後我可以通過@Model.MyProperty
訪問屬性。
假設我加入FirstName
財產在我Application User
象下面這樣:
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>
}
}
想我也想顯示名字,而不是User.Identity.GetUserName()
我怎麼可以這樣做。
下面是註冊過程中用戶會看到的RegisterViewModel。
public class RegisterViewModel
{
// rest property removed for brevity
[Required]
public string FirstName { get; set; }
}
現在返回一個視圖時,該RenderBody()是與該控制器操作的實際CSHTML文件被渲染的地方。但在我的場景中,我需要訪問佈局文件中的applicationUser屬性,這對所有人都是通用的。請指導我。
我可以做些什麼: User.Identity.GetFirstName或者沿着這些線?
我認爲它需要在佈局文件中。因爲頂部導航欄需要在每個頁面視圖中顯示。 – Unbreakable
請再讀一遍我寫的。然後在**佈局視圖**內調用動作(@ Html.Action)。所以每個頁面都包含它。 – Raphael
@ Html.Action將如何執行。它是否像部分視圖一樣呈現沒有任何用戶操作?所以,即使不加載任何頁面的頁面,只要點擊一下,actionlink就會被執行並且它內部的視圖會被渲染? 「不需要點擊」? – Unbreakable