2

我的代码如下所示:

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之后运行。响应不是错误页面。

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

为什么会这样?

4

1 回答 1

5

要防止处理更多代码,请使用以下命令:

Response.Redirect(url, true);

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

于 2012-08-15T20:35:43.637 回答