c#424和422错误代码

时间:2018-03-13 09:31:12

标签: c# error-handling .net-core

我希望能够从我的API返回状态代码 - 424(失败的依赖关系)和422(不可处理的实体)。 我们使用自定义错误处理程序来处理错误响应,如下所示 -

public class ApiResponse
{
    public string StatusCode { get; set; }
    public string Message { get; set; }
    public ApiResponse(int statusCode, string message = null)
    {
        StatusCode = GetDefaultMessageForStatusCode(statusCode);
        Message = message;
    }
    private static string GetDefaultMessageForStatusCode(int statusCode)
    {
        switch (statusCode)
        {
            case 200:
                return "Success.";
            case 400:
                return "Bad request.";
            case 404:
                return "Not Found.";
            case 424:
                return "Dependency Failure";
            case 500:
                return "An unhandled error occurred.";
            default:
                return null;
        }
    }
}

public class DependencyFailureResponse : ApiResponse
{
    public DependencyFailureResponse(string message) : base(424)
    {
        Message = message;
    }
}

当我从我的控制器调用DependencyFailureResponse时,我得到了"依赖失败"状态代码以及我的自定义meesage。 但;因为我称之为 -

return BadRequest(new DependencyFailureResponse("Custom message"));

它将始终显示为400 Bad Request

我希望能够以“#34; 400 Bad Request"不应该显示。 请帮忙!谢谢!

1 个答案:

答案 0 :(得分:0)

BadRequest是一种将HttpStatusCode 400返回给调用者的控制器方法。 你可以尝试:

var response = new DependencyFailureResponse("Custom message");

return StatusCode(response.StatusCode, response.Message);