Tag: formatter

C#Web API基于GET请求的XML或JSON

我的config.Routes设置为: config.Routes.MapHttpRoute( name: “DefaultApi”, routeTemplate: “api/{controller}/{id}”, defaults: new { id = RouteParameter.Optional } ); 有了这个,我可以使用: localhost:port/api/products – 获取完整的产品列表 localhost:port/api/products/# – 获取具有给定id的单个产品 基于浏览器,我得到了不同的格式(默认情况下,FireFox和Google Chrome中的XML格式以及Internet Explorer中的JSON格式)。 我主要需要JSON,所以最初我添加了: var json = config.Formatters.JsonFormatter; json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects; config.Formatters.Remove(config.Formatters.XmlFormatter); 所以我的回答总是在JSON中。 在这一点上,一切都是有意义的,我在上面提到的两个GET请求上获得了JSON格式的响应。 然后我偶然发现了这个stackoverflowpost 。 认为根据GET请求为您自己选择要返回的格式是一个很好的function。 但是,当我替换上面提到的config.Routes和JSON-only代码时: config.Routes.MapHttpRoute( name: “API UriPathExtentsion”, routeTemplate: “api/{controller}.{ext}/{id}”, defaults: new { id = RouteParameter.Optional, ext = RouteParameter.Optional } […]