如何在 ResponseType 属性(asp.net webapi)中设置 json 格式?

How to set json format in ResponseType attribute (asp.net webapi)?

我的控制器的操作 return IHttpActionResult。在项目中,我使用 snake_case 作为 json 格式,因此我将自定义 ContractResolver 添加到 json 设置:

JsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new SnakeCasePropertyNamesContractResolver() };

这就是我格式化响应的方式:

return new JsonResult<UserInfoModel>(new UserInfoModel(user.UserInfo), JsonSerializerSettings, Encoding.Unicode, this);

对于自动生成的文档,我将 [ResponseType] 属性添加到方法中。但是文档使用驼峰式格式来响应示例。

如何在 ResponseType 属性中设置 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