【发布时间】:2013-07-26 09:47:06
【问题描述】:
我是 mvc 的新手。我有一个网络表单应用程序,每个页面都有一个母版页。
母版页模板中有一个虚拟函数,每个页面的 page_load 我都覆盖了它。
现在我的项目中有 mvc 模式。我应该把所有这些业务放在我的项目中的什么地方。
【问题讨论】:
标签: asp.net-mvc
我是 mvc 的新手。我有一个网络表单应用程序,每个页面都有一个母版页。
母版页模板中有一个虚拟函数,每个页面的 page_load 我都覆盖了它。
现在我的项目中有 mvc 模式。我应该把所有这些业务放在我的项目中的什么地方。
【问题讨论】:
标签: asp.net-mvc
在 MVC 中可以使用一些特殊的视图(假设您使用的是 razor)。
有_viewstart 和_layout 的视图(虽然可以命名为其他任何名称)。
所以基本上特定控制器的视图文件夹中的 _layout.cshtml 视图可以作为存在于同一文件夹中的视图的母版页,而共享文件夹中的 _layout.cshtml 视图可以作为所有视图的母版页。
要指定将特定视图用作母版页,请在视图内设置 Layout 变量。前Layout = "~/Views/Shared/_layout.cshtml";
【讨论】:
通常母版页位于 Views 文件夹的 Shared 文件夹中。
如果您有多个母版页,我建议您尽量减少相同的数量。
制作一个应该在所有页面上调用的父母版页。
要使用多个母版页,您可以这样做
<script language="C#" runat="server">
protected void Page_PreInit(object sender, EventArgs e)
{
if (User.IsInRole("Admin"))
{
this.MasterPageFile = "~/Views/Shared/Site2.Master";
}
else
{
this.MasterPageFile = "~/Views/Shared/Site.Master";
}
}
你也可以使用 ViewMasterPage.MasterPageFile 内置类
【讨论】: