ASP .NET MVC - 向 ajax 调用返回异常消息

Posted

技术标签:

【中文标题】ASP .NET MVC - 向 ajax 调用返回异常消息【英文标题】:ASP .NET MVC - return Exception message to ajax call 【发布时间】:2019-12-04 04:21:26 【问题描述】:

我的 ajax 调用:

  $.ajax(
     url: './Orders/SaveOrder',
     type: "POST",
     data: JSON.stringify(data),
     dataType: "JSON",
     contentType: "application/json",
     success: function (d) 
     if (d.status == true) 
          alert('Successfully saved.');
       
       else 
             alert('Failed' + d.ErrorMessage);
        
       ,
       error: function (error) 
         alert('Error. Please try again.');
        

还有我的 SaveOrder 控制器操作:

  [HttpPost]
  public JsonResult SaveOrder(OrderVM o)
  
    try
            
                if (ModelState.IsValid)
                
                      // do some database work
                    
                

                return new JsonResult  Data = new  status = status ;
            
            catch (Exception ex)
            
                // how to return jsonresult with error?
            
        

如何获取 ajax 请求以接收来自 try-catch catch 块的详细信息?具体来说,“错误:函数...”部分是如何取回代码的?

【问题讨论】:

看看here,看看有没有帮助 【参考方案1】:

你可以试试:

return new HttpStatusCodeResult(500, ex.Message);

我相信这适用于 Ajax,您可以从错误参数中获取错误消息。希望它有效!

edit:对于ajax错误,可以访问错误信息:

    error: function (error) 
        alert(error.statusText);
    

【讨论】:

我试过了,但该方法需要返回一个 Jsonresult。 将方法的返回类型更改为 ActionResult,您仍然可以使用 JsonResult 并为您的错误返回一个 StatusCode()。

以上是关于ASP .NET MVC - 向 ajax 调用返回异常消息的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC:如何防止会话锁定?

浅析Asp.net MVC 中Ajax的使用

asp.net mvc 4控制器并行执行多个ajax调用

ASP.NET MVC 在 Ajax 调用控制器后显示视图

如何使用 jQuery 和 ASP.NET MVC 从 AJAX 调用返回错误消息?

AJAX跨域调用ASP.NET MVC或者WebAPI服务的解决方案