2013-09-25 3 views
0

을 WebAPI 이 같은 Global.asax에 내 길을 만들 :MapHttpRoute 기본 POST를 위해 내가 튜토리얼에서 촬영 한 간단한 웹 API 다음 (AN MVC 프로젝트, 그냥 빈 ASP.NET 사이트의 일부)을 감안할 때

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) 
    GlobalConfiguration.Configuration.Routes.Add("default", New HttpRoute("{controller}")) 
End Sub 

이 잘 작동하지만 내가 서비스가 분리되어 존재할 수 있도록 WebAPI 라우팅은 바람직 MapHttpRoute를 사용하여 작성해야합니다 읽었습니다. 사실입니까?

그렇다면 누구든지 내 global.asax 버전을 대체 할 코드를 게시 할 수 있습니까?

업데이트

나는 마지막 비트를 파악,하지만 여전히 '올바른'방법이 있는지 알고 감사하겠습니다?

RouteTable.Routes.MapHttpRoute("default", "{controller}") 

답변

2

MapHttpRoute 확장 메서드는 라우팅 테이블에 HttpRoute 인스턴스를 등록하는 편리한 방법입니다. 그러나 단축 방법을 사용하지 않고 수동으로 HttpRoute을 만들고 등록하는 것은 완벽합니다.

MapHttpRoute의 내부 동작을 이해하려면 HttpRouteCollectionExtensions.cs 소스 코드를 살펴보십시오.

+0

고마워요. 라우팅에 익숙하지 않기 때문에 두 가지 예에서 큰 차이가 없음을 알 수 있습니다. 'MapHttpRoute'은 속기라고 말하지만 이것이 원래의 접근법에 정말로 도움이되는 예제가 있습니까? 'MapHttpRoute'이 단지 시간 절약 운동을 통해 개발 된 다른 이유가 있었습니까? – EvilDr

+1

@EvilDr'MapHttpRoute'은 기본 라우트 값이나'HttpRouteValueDictionary' 대신에 동적 타입을 사용하는 제약 조건 같은 추가 매개 변수를 지정하기가 더 쉽습니다. 커스텀 라우트에 특화된'HttpMessageHandler'를 지정할 때'HttpRoute' 인스턴스를 사용할 필요가 있습니다 (http://aspnetwebstack.codeplex.com/SourceControl/latest#src/SystemWeb.Http/Routing/HttpRoute를보십시오). cs). –

+0

좋습니다, 감사합니다. – EvilDr