ASP.NET динамическое изменение главной страницы
Можно ли изменить главную страницу страницы содержимого нажатием кнопки на этой странице содержимого?
Если нет, то почему?
4 ответа:
Возможно, вам придется переопределить метод OnPreInit вашего класса codebehind таким образом...
protected override void OnPreInit(EventArgs e) { Page.MasterPageFile = "~/your/masterpage.master"; }
Таким образом, чтобы привязать это к клику, вы можете использовать параметр строки запроса, т. е.
<a href="<%=Request.Url.ToString()%>?masterPage=alternative">Use alternative master page</a>
А затем в кодовом поле
protected override void OnPreInit(EventArgs e) { if(Request["masterPage"] == "alternative") { Page.MasterPageFile = "~/your/alternative/masterpage.master"; } }
У вас может быть обычный, не серверный
<form>
, со скрытым полем<input>
. Когда форма публикуется, вы проверяете значение<input>
в событии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";