我有一个现有的.net网络表单应用程序。我通过nu get将web api添加到项目中。我将路由信息添加到全局asax
所以不要使用myproject.Config来代替典型的web api项目 添加路由
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
我必须将它放在application_start
下的全局asax中 System.Web.Routing.RouteTable.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
有效且一切都很好但是对于某些浏览器,响应是以xml的形式返回的,我希望它始终是JSON,所以通常是在我添加的myproject Config中的常规web api项目中实现这一点。
config.Formatters.Remove(config.Formatters.XmlFormatter);
我无法弄清楚如何在我试过的配置的全局asax版本中做到这一点
System.Web.Routing.RouteTable.Routes.Remove(System.Web.Routing.RouteTable.Routes.Formatters.XmlFormatter);
但它抱怨格式化程序不是System.Web.Routing.RouteCollection的成员
有什么想法吗?
答案 0 :(得分:2)
我刚发现它。它是
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear()
抱歉,在发布之前应该多看一遍