2014-02-12 2 views
0

JSONP를 반환하는 컨트롤러가있는 WebApi 프로젝트가 있습니다. 이를 위해 JsonPMediaTypeFormatter 클래스를 사용하고 있습니다. 이제 이러한 컨트롤러를 사용자 정의 포맷터를 사용하지 않는 2nd Web API 프로젝트와 병합해야합니다. 특정 경로가 즉 위해 JSONP를 제공하려면 어떻게Web Api에서 특정 경로와 함께 특정 미디어 포맷터를 사용하는 방법

"API/ProductsController가/{동작}/{ID가} - JSONP

반환"- 아니 사용자 정의 포맷터

API/LookupController/{동작}/{ID}
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()); 
    } 

답변

1

경로마다 특정 형식 지정자가있는 것은 아니지만 특정 형식 지정자를 사용할 수있는 per-controller configuration이 있습니다. 예를 들어, 시나리오에서 특정 컨트롤러 세트에 대한 공통 기본 컨트롤러를 가질 수 있으며 컨트롤러 별 구성 속성으로 해당 기본 컨트롤러를 장식 할 수 있습니다. 당 컨트롤러 구성을 만들기위한

웹 API 샘플 : 팁을위한 http://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/ControllerSpecificConfigSample/ReadMe.txt

+0

큰 감사합니다! – MikeW

관련 문제