对于全局的东西,比如你的布局,你应该使用一个子动作,如果你还没有。尝试为每个视图单独填充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