【问题标题】:Prevent redirect on web form error防止 Web 表单错误重定向
【发布时间】:2013-08-08 12:40:31
【问题描述】:

我正在开发一个用 asp.net 编写的网站,我有一个绑定到 sqldatasource 的表单。发生在表单提交过程中发生错误时,用户被重定向到错误页面。我想要获得的是在同一页面或警报中显示错误,保留在同一页面中。

我不需要知道如何显示警报或如何将代码附加到页面,我只是想找到一种方法来阻止页面重定向。

我需要像 javascript 中的“preventDefault ()”这样的东西,有这样的东西:

Protected Sub Page_Error(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Error
        Dim ex As Exception = Server.GetLastError()

        //Report exception to user
        ...

        //Then prevent someway page from redirect
        preventDefault() //Need something similar
        //or
        Return false     //Need something similar

    End Sub

注意我已经知道 try/catch 方法,我正在寻找一种方法来阻止页面以防出现未处理的错误。

【问题讨论】:

    标签: asp.net error-handling webforms submit


    【解决方案1】:

    您需要在错误到达 ASP.NET 错误处理机制之前使用try ... catch 块来捕获错误。您可以选择如何处理 catch 块内的异常。 MSDN 有更多关于这个主题的信息。

    【讨论】:

    • 我已经知道了,我正在寻找一种方法来阻止页面以防出现未处理的错误
    • 捕获未处理的错误捕获所有异常都继承自的通用异常。
    【解决方案2】:

    您可以使用Server.ClearError()

    【讨论】:

    • 我已经知道了,我正在寻找一种方法来阻止页面以防出现未处理的错误
    • 对不起。我看到你现在添加了该注释。
    • 我试过这个方法。清除错误,但无论如何我都会在一个完全空白的页面中被重定向。
    • 我明白你说的。但请注意,URL 仍然保持不变 - 页面不会被重定向,但响应会从页面中清除。
    • 如果您只是担心留在同一页面上;然后使用 Respone.Redirect("Default.aspx") (假设您在 Default.aspx 页面上)是一个选项。
    【解决方案3】:

    好的,我看到你尝试了try-catch 语句。

    所以,完整的解释请参考here

    【讨论】:

    • 我已经知道了,我正在寻找一种方法来阻止页面以防出现未处理的错误
    【解决方案4】:

    如果你想使用 Jquery,你可以看看这些。

    http://api.jquery.com/jQuery.ajax/

    http://api.jquery.com/jQuery.post/

    这是我以前用过的一个不错的 jQuery

        $('#FORMID').submit(function ()
        {
            if(AN_ERROR)
            {
                return false;
            }
            return true;
        });
    

    返回 'false' 会停止页面重定向的默认行为。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2011-08-20
      • 2011-05-01
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 2021-05-14
      • 2016-07-05
      相关资源
      最近更新 更多