以编程方式为整个应用程序设置母版页

时间:2012-08-04 14:31:03

标签: asp.net vb.net webforms

我知道以下内容将在ASP.NET VB.NET应用程序中以编程方式设置母版页:

Me.MasterPageFile = "~/masterPage.master"

是否可以以编程方式设置适用于应用程序中所有页面的母版页文件,而不必为每个单独的页面设置它?我希望能够从数据库中检索此值,以便设置要使用的母版页文件。

如果没有,是否可以在web.config中设置多个母版页文件?

3 个答案:

答案 0 :(得分:1)

这是您可以使用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
{
}

答案 1 :(得分:1)

您可以在web.config文件中设置:

<pages masterPageFile="~/Template.master" />

答案 2 :(得分:0)

您可以在web.config中更改页面设置。此代码将更改所有页面的母版页。

    var configuration = WebConfigurationManager.OpenWebConfiguration("~");
    SystemWebSectionGroup section=new SystemWebSectionGroup();
    section.Pages.MasterPageFile = "~/YourMasterPage.master";//Here too.
    configuration.Save();

请记住,对web.config进行更改会重新启动Web服务器并使缓存无效。所以不要经常这样做。

我建议您单独为PreInit事件中的页面执行此操作。我发布了这段代码,告诉你可以一次更改所有页面,但它有其后果。