我使用 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/