3

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

Me.MasterPageFile = "~/masterPage.master"

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

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

4

3 回答 3

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
{
}
于 2012-08-04T15:26:00.650 回答
1

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

<pages masterPageFile="~/Template.master" />
于 2012-08-04T15:30:42.887 回答
0

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

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

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

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

于 2012-08-04T15:32:29.250 回答