asp.net - 使用 ASP.NET MVC AJAX 时如何在客户端显示错误

标签 asp.net ajax asp.net-mvc

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

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

最佳答案

您可以从 Controller 返回状态代码和错误消息并将其传递给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);
}

关于asp.net - 使用 ASP.NET MVC AJAX 时如何在客户端显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22449412/

相关文章:

javascript - ASP :ListBox OnSelectedIndexChanged call javascript function not server side code

c# - ListView DeleteMethod 未传递 DataKeyNames 值

jquery - 验证来自 ajax 注入(inject)元素的数据。需要将新数据绑定(bind)到文档以便验证能够看到它。多维 Controller

jquery - Bootstrap Select 与 ajax 发送参数

jquery - MVC 将数据传入和传出 Bootstrap Modal

asp.net - 将多项目 MVC4 解决方案部署到 Azure 失败

c# - 无法从 App_code 文件夹中找到类型或命名空间

.net - HttpRequest.GetHashCode() 实现 - 冲突发生的频率如何?

php - 修复 PHP 中 Wordpress 插件的 HTTPS 错误,当我知道是哪些文件导致错误时出现混合内容错误?

jquery - SignalR 连接卡住其他 ajax 请求