在MVC应用程序中全局设置布局的位置

时间:2013-10-24 05:45:48

标签: asp.net-mvc asp.net-mvc-4

我需要在我的MVC应用程序中实现母版页面asp.net概念,当用Google搜索时我可以理解通过在MVC中使用布局可以获得相同的内容。
我在〜Views \ Shared_Layout.cshtml下的应用程序中有_Layout文件。
要在我的员工详细信息页面中的布局文件中包含内容,我已将以下内容添加到

@{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
    ViewBag.Title = "DisplayEmployeeList";
}

我想知道,如果我单独在所有页面中重复上述代码,或者我可以在某个地方全局执行,以便在所有页面上都可以查看。

1 个答案:

答案 0 :(得分:5)

不能一次为所有页面设置它。

在您的“视图”文件夹中,应该有_ViewStart.cshtml

只需在那里引用_Layout.cshtml,您的所有视图都会从此继承。

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

Scott Guthrie的进一步解释: http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx

直接来自asp.net: http://www.asp.net/whitepapers/add-mobile-pages-to-your-aspnet-web-forms-mvc-application

<强> /编辑:

如果您想为ViewStart带来一些逻辑,您可以(例如)检查请求是否来自移动设备,并因此使用另一个布局:

@{
    if (Request.Browser.IsMobileDevice)
    {
        Layout = "~/Views/Shared/_MobileLayout.cshtml";
    }
    else
    {
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
}