Я пытаюсь использовать код моей главной страницы, чтобы отобразить сообщение пользователю после перенаправления. В частности,Обход главной страницы ASP.NET после Response.Redirect (url, false)
public partial class SiteMaster : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["redirect_message"] != null)
{
// put the message in a hidden field for JavaScript to put in an alert()
Session.Remove("redirect_message");
}
}
}
Любая страница, которая затем хочет, чтобы показать сообщение может это сделать:
Session["redirect_message"] = "I've sent you to OtherPage.aspx";
Response.Redirect("~/OtherPage.aspx");
Это работает так, как я хочу, чтобы это ... я сначала получить OtherPage.aspx
«s Page_Load
событие, то Я получаю событие мастера Page_Load
. Тем не менее, я читал во многих местах (например, here), что этот способ перенаправления не рекомендуется. Таким образом, я изменил к рекомендованному пути:
Session["redirect_message"] = "I've sent you (nicely this time) to OtherPage.aspx";
Response.Redirect("~/OtherPage.aspx", false); // don't use Response.End()
Context.Application.CompleteRequest();
и, к сожалению, теперь мой мастер-страницы Page_Load
событие вызывается перед темOtherPage.aspx
начинает загрузку. Я вижу из this ответ, что нет способа остановить обработку страницы (кроме использования MVC, что не является для меня вариантом) - существует ли способ, по крайней мере, предотвратить загрузку элементов главной страницы?