【问题标题】:How to display error on the client when using ASP.NET MVC AJAX使用 ASP.NET MVC AJAX 时如何在客户端显示错误
【发布时间】:2014-03-17 08:10:24
【问题描述】:

我正在使用带有@AJAX.ActionLink 帮助器的 ASP.NET MVC AJAX 来实现从网格中删除项目。当请求被执行时,它返回没有被删除项目的网格,并且 AJAX 助手替换了网格。这工作得很好,但问题是如果无法删除项目(在我的情况下由于外键约束)该怎么办。如何向客户端报告错误并显示适当的消息。我不想盲目地使用 OnFailure 函数,因为我不想为所有错误显示相同的错误消息。理想情况下,将有一种方法可以从操作中发送特定错误并检查 JavaScript OnFailure 函数中的错误,但我似乎找不到它。

当然,我可以降级为返回 JSON,手动执行 AJAX 调用和替换 UI 元素,但我真的不喜欢。我宁愿做一些肮脏的事情,比如用错误信息渲染隐藏的输入并在客户端上检查它,但如果有更好的方法,我也不想这样做。

【问题讨论】:

    标签: asp.net ajax asp.net-mvc


    【解决方案1】:

    您可以从控制器返回状态码和错误消息并将其传递给 ajax OnFailure 函数

    return new HttpStatusCodeResult(HttpStatusCode.Conflict, "The entity is currently used");
    

    如图所示:ASP.NET MVC AJAX onError handling

    在客户端JS中:

    function deleteFailure(responce) {
        var statusCode = responce.status;
        var responceText = responce.statusText;
        if(statusCode == 409){
            //do something specific for specific errors
        }
        alert(responceText);
    }
    

    【讨论】:

      猜你喜欢
      • 2012-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-03
      • 2020-11-15
      • 2016-03-31
      • 2021-12-24
      • 2020-07-21
      相关资源
      最近更新 更多