c# - 如何修复此 webapi 路由配置?
问题描述
我在 WebApiConfig.cs 中编写了这段代码,但它的行为不符合预期。例如:json 的驼峰式大小写并排除空值的属性。
我需要指导才能在下面的代码段中找到任何缺失或不正确的代码。
这是一个带有 WebApiConfig.cs 的 Web 应用程序,我正在尝试配置 json 的骆驼大小写并从响应中排除空值的属性。
目前 Response 对象没有 json 的骆驼大小写,并且包括具有空值的属性。
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
var jsonFormatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
jsonFormatter.SerializerSettings.Formatting = Formatting.Indented;
jsonFormatter.SerializerSettings.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter());
jsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
config.Formatters.Add(jsonFormatter);
config.Formatters.Remove(config.Formatters.XmlFormatter);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
提前感谢您的帮助。
解决方案
使用HttpConfiguration
已传递到您的注册方法。
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Formatters.Remove(config.Formatters.XmlFormatter);
var jsonFormatter = config.Formatters.JsonFormatter;
jsonFormatter.SerializerSettings.Formatting = Formatting.Indented;
jsonFormatter.SerializerSettings.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter());
jsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
推荐阅读
- android - 一起创建一个带有 Buttons 和 TextViews 的句子
- javascript - 从另一个日期选择器的值设置日期选择器的最小属性
- c# - Quickfixn Fix 4.2 如何在同一会话中向不同的 TargetCompID 发送和接收消息
- java - Springboot 1.5.1 迁移到 2.0.1 实例格式
- php - 具有动态值的向下钻取图表不起作用。使用 json 我得到了所有的动态值
- android - OKHTTP3如何在onResponse方法中捕获IOException?
- reactjs - 如何为 React SSR 和 API 构建 monorepo
- javascript - Facebook页面插件问题
- c# - 如果用户试图进入 FSM 中的未定义状态,为什么 Akka.Net 不发出警告?
- javascript - 在从 axios API 检索的反应 javascript 中以 JSON 形式冲浪对象数组