對於全局的東西,比如你的佈局,你應該使用一個子動作,如果你還沒有。嘗試爲每個視圖單獨填充ViewBag
變量只會導致失敗,因爲您將不可避免地忘記,或者一些新的開發人員不會知道這樣做。
與孩子的動作,你可以通過任何你喜歡的模型,您的局部視圖,從而使您能夠真正從持久性存儲查找你的用戶,並使用你喜歡它的任何屬性的能力。
[ChildActionOnly]
public ActionResult LoginPartial()
{
// ASP.NET Identity
var user = UserManager.FindById(User.Identity.GetUserId());
// Membership
// var user = db.UserProfiles.SingleOrDefault(m => m.UserName == User.Identity.Name);
return PartialView("_LoginPartial", user);
}
然後在你的局部視圖,用於身份:
@model Namespace.To.ApplicationUser
或者與會員
@model Namespace.To.UserProfile
而且,繼續談到任何性質關閉你喜歡的用戶實例。
要調用子操作在佈局:
@Html.Action("LoginPartial", "Account")
(我假定你已經到位兒童行動在AccountController
,這似乎是最合理的地方)
在控制器中的任何'model屬性中設置'my.prop',然後在'actionlink'中使用'@ Model.myprop'來設置User.Identity.Name'。 – 2014-09-22 12:13:35