返回500响应时如何返回信息

时间:2016-06-29 13:00:25

标签: c# .net json ajax

我想从我的后端返回到我的前端的500 Exception信息,但每次我选择执行Response.StatusCode = 500代码时,代码似乎都会返回500 Standard Return页面。在我选择告诉系统这是一个500错误之后,有没有返回我自己的数据?

[HttpPost]
public async Task<ActionResult> AccountInformation(OrganizationAccountInformationVM vm)
{
    var response = await _adminFacade.UpdateOrganizationAsync(organization);

    if (response.HasErrors)
    {
        Response.StatusCode = (int)HttpStatusCode.InternalServerError;
        return Json(new {Code = "500", Header = "Error", Message = "Wrong"});
    }
    Response.StatusCode = (int)HttpStatusCode.OK;
    return Json(new {Code = "400", Header = "Success", Message= "UpdatedSuccessful"}); 
}

如果没有错误,此代码将返回“正常”数据,如果resposne HasErrors则返回“错误”数据(整个html页面)。你知道我做错了吗?

2 个答案:

答案 0 :(得分:1)

您可以指定不使用web.config文件替换错误响应。

>>> d = {0: (1,2), 1: (3,4), 2: (5,6)}
>>> numpy.array([list(v) for v in d.values()])
array([[1, 2],
       [3, 4],
       [5, 6]])

查看system webserver httperrors

答案 1 :(得分:0)

如果您不想显示默认的IIS错误页面,而是显示自己的错误页面,则需要在响应中将TrySkipIisCustomErrors设置为true

    public async Task AccountInformation(OrganizationAccountInformationVM vm)
    {
        HttpContext.Response.TrySkipIisCustomErrors = true;
        // your response with code 500
    }