2012-07-23 2 views
2

의 요청에서 RouteCollection을받는 방법이는 ASP.NET MVC 4

routes.MapRoute("NewDatabase", 
      "Server/{serverId}/Instances/{instanceId}/NewDatabase/", 
      new { controller = "Server", action = "NewDatabase" } 
      ); 

      routes.MapRoute(
      "Instance", 
      "Server/{id}/Instances/{instanceId}/Databases", 
      new { controller = "Server", action = "Databases", id = "id",instanceId="instanceId" } 
      ); 

      routes.MapRoute(
      "Database", 
      "Server/{id}/Instances", 
      new { controller = "Server", action = "Instances", id = "id" } 
      ); 

xyz.com/Server/12/Instance/1/NewDatabase 경우 서버에 reuested URL 될 것입니다 (경로 등록) 내 Global.asax에있다, Server/{serverId}/Instances/{instanceId}/NewDatabase/이 일치하는 것 무늬. 위의 요청과 일치하는 항목을 어떻게 알 수 있습니까?

감사

답변

1

RouteDebugger nuget 패키지를 설치하고 Web.config의에 수 있었다. 이것은 어떤 경로가 공격 당할 수 있는지, 그리고 왜 추적되는지를 알려줍니다.

<add key="RouteDebugger:Enabled" value="true" /> 

당신이해야 할 일은 URL로 이동하는 것입니다. RouteDebugger는 경로 정보를 페이지 하단에 추가합니다.

+0

어떤에서 빌드 방법이있다? – kbvishnu

+0

@VeeKeyBee. 그게 아니라면. 그러나 위의 것을 설정하는 데 단지 몇 분이 걸립니다. 당신이 할 수없는 이유가 있습니까? –

0

찾고있는 것이 맞는지 확신 할 수 없지만 맞춤 조건이 일치하지 않는 한 경로가 일치하지 않도록하는 맞춤 경로 제약 조건을 만들 수 있습니다.

부울 값을 반환하는 Match 메서드를 구현할 수 있습니다. false를 반환하면 제약 조건과 연결된 경로가 브라우저 요청과 일치하지 않습니다. 이 메소드는 RouteValueDictionary를 가지므로 거기에서 경로 값을 확인할 수 있습니다.

자세한 내용은 다음 URL을 참조 - http://www.asp.net/mvc/tutorials/controllers-and-routing/creating-a-custom-route-constraint-cs

4

RouteTable.Routes.GetRouteData(HttpContextBase)

+0

나는 httpcontest에서 무언가를 얻었습니다. 사무실 시간에 업데이트됩니다. – kbvishnu