【问题标题】:Setting master pages programmatically for entire application以编程方式为整个应用程序设置母版页
【发布时间】:2012-08-02 07:24:36
【问题描述】:

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

Me.MasterPageFile = "~/masterPage.master"

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

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

【问题讨论】:

    标签: asp.net vb.net webforms


    【解决方案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
    {
    }
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-18
          • 1970-01-01
          • 2012-01-23
          • 2011-12-11
          相关资源
          最近更新 更多