Hok*_*ike 5 asp.net-web-api asp.net-mvc-5 asp.net-web-api2
在我们的Web API 2应用程序中,我们像这样全局配置JSON格式:
var jsonformatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
jsonformatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
Run Code Online (Sandbox Code Playgroud)
这很好用 - JSON是camelcase ..,直到我们改变我们的控制器方法以返回一个HttpReponseMessage(而不是直接响应模型类型),如下所示:
Request.CreateResponse(HttpStatusCode.OK, response);
Run Code Online (Sandbox Code Playgroud)
这一个变化似乎导致MVC不使用JSON格式化程序.我们的JSON不再是CaemlCase.
这是预期/设计的行为还是我没有正确指定格式化程序?
谢谢,-Mike
使用Request.CreateResponse时调用的实际方法是:
public static HttpResponseMessage CreateResponse<T>(
this HttpRequestMessage request, T value)
{
return request.CreateResponse<T>(HttpStatusCode.OK, value, configuration: null);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,配置属性只是设置为null.
所以你可以手动从Request对象获取配置并调用另一个像这样的重载:
Request.CreateResponse(HttpStatusCode.OK, response, Request.GetConfiguration());
如果您对更多细节感兴趣,可以查看框架的源代码.CreateResponse 在这里定义
| 归档时间: |
|
| 查看次数: |
3500 次 |
| 最近记录: |