页面OnLoad即使在重定向后仍然会发生

时间:2014-08-13 19:31:15

标签: asp.net redirect

我限制访问某些页面,直到访问过其他页面。访问页面A.如果页面A上的某个进程未完成,当您尝试转到页面B时,您将被重定向回到页面A.重定向有效,但即使重定向发生,OnLoad仍会在页面B上运行。我尝试将重定向放在页面B的OnInit中,但是PageB.OnLoad仍然可以运行。如何阻止OnLoad运行?

2 个答案:

答案 0 :(得分:0)

您可以拨打Response.Redirect的{​​{3}}。传递true告诉它在重定向后不要继续执行当前方法。

但是,您会在该页面上看到一条说明,建议您不要这样做,除非必须这样做。您需要判断他们在您的特定应用中所说内容的重要性。

作为替代方案,请考虑在加载事件处理程序中添加条件代码块:

if (isIncompletedPageA)
{
  Response.Redirect(urlToPageB)
}
else
{
  //normal page load code
}

答案 1 :(得分:0)

我赞成答案,因为它在概念上是正确的,我没有说明我将在问题中说些什么,但为了进一步澄清:

我使用的RedirectToRoute没有可选参数(至少在.Net 4中),所以我必须这样做:

Response.RedirectToRoute("myRouteName");
Response.End();