如何从MVC HttpPost向jQuery返回错误。 (打开customErrors)

时间:2016-12-12 19:48:05

标签: jquery asp.net-mvc

在我的JS中我有:

$.post("/Controller/MyAction", { myData: data })
.done(function (data) {

})
.fail(function (xhr, status, err) {
    alert(xhr.responseText);
});

在我的控制器中我有:

[HttpPost]
public void MyAction(MyTest data)
{
    var response = DoSomething(data);

    if (!response.IsSuccessStatusCode)
    {
        throw (new Exception(response.ReasonPhrase));
    }
}

但是我在web.config中打开了customErrors。它似乎正在拦截投掷,而不是收到401消息,我收到了500条消息。

如何从MVC HttpPost(打开customErrors)向jQuery返回错误?

1 个答案:

答案 0 :(得分:0)

您可以在Response中明确设置StatusCode。

[HttpPost]
public void MyAction(MyTest data)
{
    var response = DoSomething(data);

    if (!response.IsSuccessStatusCode)
    {
        Response.StatusCode = 401;
    }
}

这将转到$.post方法的fail处理程序。