我是 mvc 的新手。我有一个网络表单应用程序,每个页面都有一个母版页。
母版页模板中有一个虚拟功能,每个页面的 page_load 我都在覆盖它。
现在我的项目中有 mvc 模式。我究竟应该把所有这些业务放在我的项目中的什么地方。
我是 mvc 的新手。我有一个网络表单应用程序,每个页面都有一个母版页。
母版页模板中有一个虚拟功能,每个页面的 page_load 我都在覆盖它。
现在我的项目中有 mvc 模式。我究竟应该把所有这些业务放在我的项目中的什么地方。
在 MVC 中可以使用一些特殊的视图(假设您使用的是剃须刀)。
视图有_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 内置类