C# 4.0 如何在Web Api中使用具有特定路由的特定媒体格式化程序
我有一个WebApi项目,其中的控制器返回JSONP。为此,我使用了一个JsonPMediaTypeFormatter类——我现在必须将这些控制器与第二个不使用自定义格式化程序的Web Api项目合并。如何交付特定路线的JSONP “api/ProductsController/{action}/{id}-返回JSONP “api/LookupController/{action}/{id}-无自定义格式化程序C# 4.0 如何在Web Api中使用具有特定路由的特定媒体格式化程序,c#-4.0,asp.net-web-api,C# 4.0,Asp.net Web Api,我有一个WebApi项目,其中的控制器返回JSONP。为此,我使用了一个JsonPMediaTypeFormatter类——我现在必须将这些控制器与第二个不使用自定义格式化程序的Web Api项目合并。如何交付特定路线的JSONP “api/ProductsController/{action}/{id}-返回JSONP “api/LookupController/{action}/{id}-无自定义格式化程序 public static void Register(HttpConfig
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);
config.Formatters.Insert(0, new JsonpMediaTypeFormatter());
}
没有特定的每路由方式来拥有格式化程序,但是有一种
每控制器配置
,您可以使用它来拥有特定的格式化程序。例如,在您的场景中,您可以为某些控制器集使用一个公共基本控制器,并使用每个控制器配置属性装饰该基本控制器
用于创建每个控制器配置的Web API示例:
链接不再有效