为什么响应.重定向导致System.Thread.ThreadAbortException?当我使用Response.重定向(.)要将表单重定向到新页面,我将得到以下错误:类型‘System.Threading.ThreadAbortException’的第一次机会异常发生在mcorlib.dll中。类型‘System.Threading.ThreadAbortException’的异常发生在m336 lib.dll中,但未在用户代码中处理。我对此的理解是,错误是由Web服务器中止调用response.redirected页面的其余部分引起的。我知道我可以在Response.Redirect这叫做endResponse。如果我将endResponse设置为True,我仍然会得到错误,但如果我将其设置为false,则不会。我很确定,尽管这意味着Web服务器正在运行我重定向的页面的其余部分。至少可以说这是没有效率的。有更好的方法吗?其他的东西Response.Redirect或者,是否有一种方法可以强制旧页停止加载我无法获得ThreadAbortException?
3 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
Response.Redirect
Try...Catch
编辑
这段代码很不完美,可能不应该被复制,因为我还没有测试过它。
public void btnLogin_Click(UserLoginViewModel model){ bool ValidLogin = false; // this is our "result value" try { using (Context Db = new Context) { User User = new User(); if (String.IsNullOrEmpty(model.EmailAddress)) ValidLogin = false; // no email address was entered else User = Db.FirstOrDefault(x => x.EmailAddress == model.EmailAddress); if (User != null && User.PasswordHash == Hashing.CreateHash(model.Password)) ValidLogin = true; // login succeeded } } catch (Exception ex) { throw ex; // something went wrong so throw an error } if (ValidLogin) { GenerateCookie(User); Response.Redirect("~/Members/Default.aspx"); } else { // do something to indicate that the login failed. }}
- 3 回答
- 0 关注
- 271 浏览
添加回答
举报
0/150
提交
取消