C# ASP.NET母版页的动态更改

C# ASP.NET母版页的动态更改,c#,asp.net,master-pages,C#,Asp.net,Master Pages,是否可以通过单击内容页上的按钮来更改该内容页的母版页 如果不是为什么?这是可能的,您必须像这样重写codebehind类的OnPreInit方法 protected override void OnPreInit(EventArgs e) { Page.MasterPageFile = "~/your/masterpage.master"; } 因此,要将其绑定到单击,可以使用查询字符串参数,即 <a href="<%=Request.Url.ToString()%>

是否可以通过单击内容页上的按钮来更改该内容页的母版页


如果不是为什么?

这是可能的,您必须像这样重写codebehind类的OnPreInit方法

protected override void OnPreInit(EventArgs e)
{
    Page.MasterPageFile = "~/your/masterpage.master";
}
因此,要将其绑定到单击,可以使用查询字符串参数,即

<a href="<%=Request.Url.ToString()%>?masterPage=alternative">Use
alternative master page</a>

可以通过编程方式设置母版页,但是只能在pre-init事件中进行设置


您可以有一个常规的非服务器
,带有一个隐藏的
字段。当表单发布时,您在
Pre_Init
事件中检查
值,并在那里更改母版页


您不能将服务器端表单与常规按钮事件一起使用,因为它们在页面生命周期中触发得太晚。

我最近这样做了,根据正在呈现的页面更改了母版页上的图像

1) 我引用了控件(母版页上的imgPageSpecificTextImg)

2) 更改了代码指向的URL

            System.Web.UI.WebControls.Image imgText = (System.Web.UI.WebControls.Image)Master.FindControl("imgPageSpecificTextImg");
            imgText.ImageUrl = "images/banner.jpg";

但是一个按钮怎么可能与此相关呢?
            System.Web.UI.WebControls.Image imgText = (System.Web.UI.WebControls.Image)Master.FindControl("imgPageSpecificTextImg");
            imgText.ImageUrl = "images/banner.jpg";