我有一个站点(MVC5),其中一个部分是标题。此标题显示用户名称以及它们所代表的组织的徽标。
每个页面还有一个页面特定数据的ViewModel。
我有什么方法可以在幕后的常见模型/对象的每个页面上呈现此Partial,或者我是否需要将'userheader'viewmodel添加到每个页面上的viewmodel?
答案 0 :(得分:3)
您可以通过ChildActionOnly
完成您的要求,让我们说 -
[ChildActionOnly]
public ActionResult LoggedIn()
{
// create your User View Model and pass it to Login Partial View
return PartialView("_LoginPartial", user);
}
现在使用字符串类型模型创建一个局部视图,从上面的控制器操作返回的内容。
在您的布局中,您可以获得如下所示的局部视图 -
@Html.Action("LoggedIn", "ControllerName")
通过这种方式,您无需在不同的视图中包含相同的模型。