【问题标题】:ASP.NET MVC 4, ajax and exception details in JSONASP.NET MVC 4、ajax 和 JSON 中的异常详细信息
【发布时间】:2012-09-25 03:48:40
【问题描述】:

我是 ASP.NET 和 MVC 的新手。在我的控制器中,我在无效的用户输入上抛出ArgumentException。我喜欢客户端以 JSON 格式获取一些信息的事实。但我不想发送整个堆栈跟踪,只发送异常消息(其中包含对错误的有用的本地化解释)。

我该怎么做呢?

我见过一些Application_Error() 和FilterException,但它们似乎都被重定向到一个特殊的“错误”视图,而我想留在同一页面上,只是打印出与用户的对话-友好的解释。

【问题讨论】:

    标签: ajax asp.net-mvc error-handling asp.net-mvc-4


    【解决方案1】:

    看看这个答案ASP.NET MVC Ajax Error handling,如果你需要StatusCode:

    filterContext.HttpContext.Response.StatusCode = 500;
    

    【讨论】:

    • OnException 方法未被调用。有什么我需要配置的吗?注意:我没有更改控制器代码。
    • @Howie 你需要属性[MyErrorHandler] 或者全局注册,但是你必须检查请求的内容类型并且只为application/json返回json
    【解决方案2】:
    HttpContext.Response.StatusCode = 400
    return new ContentResult{Content="My custom error"};
    

    在这种情况下,ajax 会将响应视为错误状态,您可以指定自定义消息并从 response.responseText 属性获取它

    $.ajax({
     .....
    error: function(e){
      alert(e.responseText); // your  error message
    }
    });
    

    【讨论】:

    • 我只是在我的 IIS 服务器响应中收到“错误请求”,但本地没问题!发生了什么事?
    猜你喜欢
    • 1970-01-01
    • 2011-03-20
    • 2011-04-07
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多