如果Page_Load中存在异常,则会多次调用Page_Load

时间:2011-08-24 08:02:53

标签: asp.net

我写了以下代码

            protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    try
                    {
                        string data = Request.Form["postedData"];
                        if(someFunc(data))
                            Response.Redirect(SuccessURL, false);
                        else
                            Response.Redirect(FailureURL, false);
                    }
                    catch (Exception ex)
                    {
                        Response.Redirect(FailureURL, false);
                    }
                }
            }

除非Page_Load中存在异常,否则它可以正常工作。根据我的理解,代码应该在发生异常时将页面重定向到FailureURL。但在我的情况下,当有一个异常时,Page_Load会一次又一次地被调用,并且发布的数据为NULL。任何线索?

1 个答案:

答案 0 :(得分:0)

尝试将重定向代码更改为:

编辑:添加了代码以避免ThreadAbortException

Response.Redirect(FailureURL, false); 
HttpContext.Current.ApplicationInstance.CompleteRequest();