【问题标题】:Weird ASP.NET Redirect/Submission Issue奇怪的 ASP.NET 重定向/提交问题
【发布时间】:2011-11-01 20:05:47
【问题描述】:

我在 try/catch 块中有代码,并重定向到另一个页面。如果发生任何错误,catch 也会重定向到另一个页面。当用户单击提交按钮时,页面不会重定向到任何地方。它会进行某种页面刷新并保持在同一页面上。它有时会发生。其他时候,需要点击几次按钮才能识别重定向,然后重定向到成功页面。关于为什么会发生这种情况的任何想法?谢谢。

try
{
    ...
    Response.Redirect("SOME PAGE SUCCESS", false);
}
catch (Exception ex)
{
    Response.Redirect("SOME PAGE FAIL");
}

一个js脚本做一个doPostBack向服务器端提交数据。

setTimeout('__doPostBack(\'' + el.name + '\',\'' + args + lia + '\')', 500);

【问题讨论】:

  • 这段代码在哪里?在 Page_Load?按钮单击事件处理程序?
  • 代码在按钮点击事件处理程序中。它先通过jquery获取数据,然后提交给btnSubmit_click函数,然后调用另一个函数判断代码是成功还是失败。

标签: javascript asp.net redirect dopostback


【解决方案1】:

您不应该在 try-catch 块内使用 response.redirect。尝试在 try-catch 块中设置一个布尔变量,然后在结束 try 后在 if-then-else 语句中使用该变量的值重定向到相应的页面。

【讨论】:

  • 当我处理这个代码时,代码已经这样编写了,但无论如何,我认为这不是问题所在。我摆脱了代码中的所有 try/catch 块,但在有时提交数据或不提交数据的情况下仍然会出现奇怪的提交问题。
【解决方案2】:

我不得不重做整个页面。显然,有太多 setTimeout('__doPostBack()',500); javascript 中的调用会随机刷新页面,并且不允许服务器完成其代码的运行。摆脱了对服务器的所有 __doPostBack 调用,并使用 asp.net 控件并直接与服务器一起提交页面。

【讨论】:

    猜你喜欢
    • 2011-08-05
    • 2015-12-13
    • 1970-01-01
    • 2013-12-17
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 2011-04-02
    相关资源
    最近更新 更多