带有JSON返回的MVC rest API状态代码500

时间:2012-11-25 14:43:48

标签: asp.net-mvc rest httpexception

我正在开发MVC3上的rest API 每当验证出现问题时,我想抛出描述错误的500 + json (json可以是未经验证的字段列表)。
问题是json在html内部返回,其中包含整个HttpExeptionServer Error in '/' Application.
如果我把filterContext.ExceptionHandled = true;消息清理干净,但客户端无法看到他身边的500错误。 这种情况:https://stackoverflow.com/a/4707762/936651实际上是html并给客户端提供了干净的json,但也删除了500错误。

1 个答案:

答案 0 :(得分:1)

您可以在自定义错误处理程序seen here内设置状态代码为500:

filterContext.RequestContext.HttpContext.Response.StatusCode = 500;

并在客户端:

$.ajax({
    url: '/home/foo',
    success: function (result) {
        alert('success');
    },
    error: function (jqXHR, textStatus, errorThrown) {
        var json = $.parseJSON(jqXHR.responseText);
        // TODO: do something with the json that was returned from the server
    }
});