2

웹 API 영역을 구성하여 선택적 형식 확장자를 전달할 수있게하려고합니다. 나는 그것이 잘 작동 http://www.example.com/api/countries에 가면url 매개 변수에서 응답 형식을 선택하도록 Web API를 구성하는 방법은 무엇입니까?

public override void RegisterArea(AreaRegistrationContext context) 
{ 
    context.Routes.MapHttpRoute(
     name: "Api_default", 
     routeTemplate: @"Api/{controller}/{action}/{id}.{ext}", 
     defaults: new 
      { 
       action = "Index", 
       id = RouteParameter.Optional, 
       formatter = RouteParameter.Optional 
      }, 
     constraints: new 
          { 
           id = @"[0-9]+", 
           controller = @"[^\.]+", 
           ext = @"json|xml" 
          } 
    ); 

    GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(
      new UriPathExtensionMapping("json", "application/json") 
     ); 

    GlobalConfiguration.Configuration.Formatters.XmlFormatter.MediaTypeMappings.Add(
      new UriPathExtensionMapping("xml", "application/xml") 
     ); 

} 

지금,하지만 난 http://www.example.com/api/countries.json을하려고 할 때

No type was found that matches the controller named 'countries.json'. 

내가 잘못을하고있는 중이 야 무엇을 나에게 준다 : 여기 내 RegisterArea 메소드의 코드는?

답변

0

발견! 위의 코드는 정확합니다. 하지만, 내 App_Start 폴더에 AttributeRoutingHttpConfig.cs을 추가 한 AttributeRouting을 사용하고 있습니다. 따라서이 문제가 발생하면 확인하십시오.

+0

호기심에서 벗어나 OP는 무엇을 의미합니까? – svallory

+0

_O_riginal _P_oster –