【问题标题】:ASP.Net Dynamically switch Master PagesASP.Net 动态切换母版页
【发布时间】:2014-09-04 10:01:18
【问题描述】:

以前从未需要这样做,但是否可以动态设置/更改页面正在使用的母版页?有一个旧的 asp.net 网络表单项目,我为其创建了一个新的引导模板,但老板希望让人们有机会打开新的,而不是强加给他们。

【问题讨论】:

    标签: asp.net webforms


    【解决方案1】:

    我建议您创建一个 BasePage 类,而不是在该类中编写此方法并从该类继承您的所有页面,其母版页可以动态更改。

    public class BasePage: System.Web.UI.Page
    {
    protected void Page_PreInit(object sender, EventArgs e)
    {
        try
        {
            if (conduction1)
                this.Page.MasterPageFile = "~/MasterPage.master";
            else
                this.Page.MasterPageFile = "~/Master.master";
    
        }
        catch (Exception ex)
        {
    
        }
    }
    }
    

    然后在你的页面中像这样从 BasePage 继承页面

    public partial class _Default:BasePage
    

    【讨论】:

      【解决方案2】:

      仅在preint 事件中更改母版页

      protected void Page_PreInit(object sender, EventArgs e)
          {
              try
              {
                  if (conduction1)
                      this.Page.MasterPageFile = "~/MasterPage.master";
                  else
                      this.Page.MasterPageFile = "~/Master.master";
      
              }
              catch (Exception ex)
              {
      
              }
          }
      

      void page_PreInit(object sender, EventArgs e)
      {
         Page page = sender as Page;
         page.MasterPageFile = "string location of masterpage";
      }
      

      【讨论】:

      • 好极了,就这么简单吧。是否可以轻松全局应用,无需更改每个页面的 PreInit 函数?
      • 我认为您可以使用 HTTP 处理程序全局执行此操作
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多