我的代码如下:
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
函数仍然会运行。
为什么会以这种方式运作?
答案 0 :(得分:4)
要防止更多代码处理,请使用:
Reponse.Redirect(url, true);
第二个参数将结束进一步处理。