【问题标题】:How can I change my page's Master Page at runtime?如何在运行时更改页面的母版页?
【发布时间】:2014-04-16 18:14:27
【问题描述】:

我的一个项目中有一个要求,我需要在运行时更改母版页。

我的意思是我需要应用检查,并且基于该检查,可以将特定母版页调用到我的本机 aspx 页面。

请帮帮我。

提前致谢:)

【问题讨论】:

标签: c# asp.net webforms master-pages


【解决方案1】:

例如:

void Page_PreInit(Object sender, EventArgs e)
{
    this.MasterPageFile = "~/NewMaster.master";
}

根据需要应用条件。来自here

【讨论】:

    【解决方案2】:

    是的。仅在 PreInit 页面事件期间设置 MasterPageFile 属性,即在运行时开始处理请求之前(因为带有母版页的页面呈现发生在 Init 事件之前)

    protected void Page_PreInit(object sender, EventArgs e)
    {
           MasterPageFile = "simple2.master";
    }
    

    如果您尝试在 Init 或 Load 事件处理程序中设置 MasterPageFile 属性,则会引发异常。

    是的,可以,如下所示实现

    Dynamically Loading Master Pages in ASP.NET 2.0

    【讨论】:

      【解决方案3】:

      为了实现这一点,我们需要在页面渲染之前在 Page_PreInit 中编写代码。

      将下面的代码放入你的代码后面:

      if (Session["userType"] == "Admin") //check the user type
          this.Page.MasterPageFile = "~/Admin.master";
       else
          this.Page.MasterPageFile = "~/User.master";
      

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-12
        • 1970-01-01
        • 2021-11-29
        • 1970-01-01
        • 2010-09-05
        相关资源
        最近更新 更多