.NET抛出异常与JSON内容类型

时间:2014-07-12 09:51:49

标签: c# .net json asp.net-mvc-4

我正在使用.NET MVC 4框架的Web API项目。我的API专注于返回JOSN对象,除了当我想以JSON格式返回异常时,它的工作方式非常完美。

我下面的代码是我用来尝试强制JSON返回的代码,但是从此代码生成的响应是默认的HTML内容类型。我正在寻找一种使用" application / json"返回异常的方法。内容类型。有什么建议吗?

public static void ThrowHttpException(HttpStatusCode code, string content)
{
    string message = JsonConvert.SerializeObject(new { message = content });
    var resp = new HttpResponseMessage(code)
    {
        Content = new StringContent(message),
        ReasonPhrase = null
    };
    throw new HttpResponseException(resp);
}

1 个答案:

答案 0 :(得分:1)

你应该创建这样的动作:

public IHttpActionResult ThrowHttpException(HttpStatusCode code, string content)
{
    string message = JsonConvert.SerializeObject(new { message = content });
    var resp = new HttpResponseMessage(code)
    {
        Content = new StringContent(message),
        ReasonPhrase = null
    };
    return resp;
}

您应该从响应对象的操作返回而不是抛出异常。