我知道以下内容将以编程方式在 ASP.NET VB.NET 应用程序中设置母版页:
Me.MasterPageFile = "~/masterPage.master"
是否可以以编程方式设置适用于应用程序中所有页面的母版页文件,而不必为每个单独的页面设置它?我希望能够从数据库中检索此值,以便设置要使用的母版页文件。
如果没有,是否可以在 web.config 中设置多个母版页文件?
这就是您可以使用 ASP.NET C# 执行的操作。我没有用VB测试它。
声明您自己的页面类并为您的所有页面设置母版页:
public class MyPage : System.Web.UI.Page
{
void Page_PreInit(Object sender, EventArgs e)
{
this.MasterPageFile = "MasterPage.master";
}
}
为您创建的每个页面从您自己的页面类继承:
public partial class _Default : MyPage
{
}
您可以在 web.config 文件中进行设置:
<pages masterPageFile="~/Template.master" />
您可以在 web.config 中更改页面设置。此代码将更改所有页面的母版页。
var configuration = WebConfigurationManager.OpenWebConfiguration("~");
SystemWebSectionGroup section=new SystemWebSectionGroup();
section.Pages.MasterPageFile = "~/YourMasterPage.master";//Here too.
configuration.Save();
请记住,对 web.config 进行更改会重新启动网络服务器并使缓存无效。所以不要经常这样做。
我建议您为 PreInit 事件中的页面单独执行此操作。我发布此代码是为了向您展示它可以一次更改所有页面,但它有其后果。