回发时的响应重定向

时间:2012-08-15 20:32:48

标签: asp.net

我的代码如下:

protected void Page_Load(object sender, EventArgs e)
{
   if(IsPostback)
   {
      if(/* User is not authenticated to perform any actions on this page */)
      {
        Response.Redirect(/* Error Page */);
      }
   }
}

protected void btnSubmit_Click(object sender, EventArgs e)
{
   /* do some stuff */
}

我猜想如果我提交按钮进行回发并且我没有经过身份验证,那么在Page_Load中会发生重定向并发回HTTP 302.但是,它似乎运行了Response.Redirect代码行,继续在Page_Load中处理它,然后甚至运行btnSubmit_Click。响应不是错误页面。

我可以在Response.Redirect之后进行return调用,以防止在该函数中进一步处理,但btnSubmit_Click函数仍然会运行。

为什么会以这种方式运作?

1 个答案:

答案 0 :(得分:4)

要防止更多代码处理,请使用:

Reponse.Redirect(url, true);

第二个参数将结束进一步处理。