【问题标题】:How to Set Master Page dynamically?如何动态设置母版页?
【发布时间】:2012-06-07 11:31:24
【问题描述】:


我有一个要求,我想根据用户 ID 为同一页面设置不同的母版页(即,对于一个用户,它必须设置一个母版页,对于另一个用户,它必须设置另一个母版页)。我们可以为任何页面设置不同的母版页吗动态的?请帮忙...

【问题讨论】:

标签: c# .net master-pages master


【解决方案1】:
void Page_PreInit(Object sender, EventArgs e)
{
    this.MasterPageFile = "~/MyMaster.master";
}

说明:您可以将母版页动态附加到内容页。由于在页面处理的初始化阶段合并了母版页和内容页,因此在此之前必须分配母版页。通常,您在 PreInit 阶段动态分配母版页。

【讨论】:

    【解决方案2】:

    请注意 MSDN 上的这篇文章:

    http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx

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

    【讨论】:

      【解决方案3】:

      您可以通过设置页面的MasterPageFile 属性。但是,如果在PreInit 事件之后调用它,则会抛出InvalidOperationException。看看ASP.NET Page Lifecycle

      MasterPageFile 属性只能在 PreInit 事件中设置;在 PreInit 事件之后尝试设置 MasterPageFile 属性将引发 InvalidOperationException 异常。如果 MasterPageFile 属性无效,则在页面生命周期后期会抛出 HttpException 类型的异常,但在 PreInit 事件中设置该属性时不会抛出异常。

      【讨论】:

        猜你喜欢
        • 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
        相关资源
        最近更新 更多