我可以在整个站点中显示用户特定数据,而无需添加到每个视图模型

时间:2014-10-06 11:58:54

标签: c# asp.net-mvc

我有一个站点(MVC5),其中一个部分是标题。此标题显示用户名称以及它们所代表的组织的徽标。

每个页面还有一个页面特定数据的ViewModel。

我有什么方法可以在幕后的常见模型/对象的每个页面上呈现此Partial,或者我是否需要将'userheader'viewmodel添加到每个页面上的viewmodel?

1 个答案:

答案 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")

通过这种方式,您无需在不同的视图中包含相同的模型。