删除使用web api的Web表单应用程序的xmlformatter

时间:2015-08-28 11:14:02

标签: asp.net asp.net-web-api webforms

我有一个现有的.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的成员

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我刚发现它。它是

GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear()

抱歉,在发布之前应该多看一遍