我的控制器的操作返回IHttpActionResult。在项目中,我使用 snake_case 作为 json 格式,因此我将自定义合同解析器添加到 json 设置中:
JsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new SnakeCasePropertyNamesContractResolver() };
这就是我格式化响应的方式:
return new JsonResult<UserInfoModel>(new UserInfoModel(user.UserInfo), JsonSerializerSettings, Encoding.Unicode, this);
对于自动生成的文档,我将 [响应类型] 属性添加到方法中。但是文档使用驼峰大小写格式作为响应示例。
如何在响应类型属性中设置 json 格式?
您是否在global.asax.vb中尝试过以下内容:
GlobalConfiguration.Configuration.Formatters.Clear()
GlobalConfiguration.Configuration.Formatters.Add(New JsonMediaTypeFormatter())
WebApiConfig.Register(GlobalConfiguration.Configuration)
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters)
找到了一个解决方案:
加
var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().First();
jsonFormatter.SerializerSettings.ContractResolver = new SnakeCasePropertyNamesContractResolver();
config.Formatters.Add(new JsonMediaTypeFormatter());
到 WebApiConfig.cs