使用MVC将数据导入局部视图或布局

Pau*_*een 5 asp.net-mvc

我想在布局和/或部分视图中显示有关登录用户的信息(用户名,公司名称,通知数等).这些在每个页面都很常见.是否有获取这些数据的技巧,或者是扩展每个模型以获取这些信息的情况?

VJA*_*JAI 22

我建议您可以进行子操作并从布局中调用它.通过这种方式,您可以避免在所有视图模型中执行信息.

防爆.

儿童行动

public class UserController
{
  [ChildActionOnly]
  public PartialViewResult UserInfo()
  {
     var userInfo = .. get the user information from session or db

     return PartialView(userInfo);
  }
}
Run Code Online (Sandbox Code Playgroud)

局部视图

@model UserInfoModel

@Html.DisplayFor(m => m.UserName)
@Html.DisplayFor(m => m.CompanyName)
...
Run Code Online (Sandbox Code Playgroud)

布局视图

<header>
  @Html.Action("UserInfo", "User")
</header>
Run Code Online (Sandbox Code Playgroud)