2

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

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

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

4

1 回答 1

6

不,您可以一次为所有页面设置它。

在您的 Views 文件夹中,应该有一个_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";
    }
}
于 2013-10-24T05:51:09.417 回答