2011-01-03 8 views
0

내가 사용하고 다음 경로를지도에ASP.NET MVC 라우팅 문제 : 허용하는 방법 ""ID의

routes.MapRoute(
    "RenderAssociatedForm", 
    "DoAction/{nodeLevelId}/{nodeSystemId}", 
    new { 
    controller = "FrontEnd", 
    action = "RenderAssociatedForm",      
}); 

지금 nodeLevelIdzs\bbal 같은 것을 할 수 있습니다. '\'를 벗어나야한다는 것을 알고 있으므로 'zs % 5cbbal'을 사용합니다. 그러나 여전히 다음 URL은이 경로에 매핑되지 않습니다. 내가 이스케이프 문자없이 간단한 이드하려고하면

//localhost/DoAction/zs%5cbbal/5

는 제대로 매핑합니다. 아무도 내가 잘못 가고 있다고 말할 수 있습니까?

+0

솔루션 없음? : – Bipul

+0

새해로 대부분의 사람들은 가족과 함께 시간을 보내고 있습니다 –

답변

1

당신은 두 가지 경로로를 시도 할 수 있습니다. 첫 번째 경로는 사용자가 보여준 경로이며 다음에 간단히 "DoAction/{nodeLevelId}"입니다.

0

당신은 자신을 와일드 카드를 사용하여 값을 구문 분석해야합니다 :

routes.MapRoute(
     "RenderAssociatedForm", 
     "DoAction/{*nodeLevelId}/{nodeSystemId}", 
     new 
     { 
      controller = "FrontEnd", 
      action = "RenderAssociatedForm",      
     }); 
+0

죄송합니다. 작동하지 않습니다. "catch-all 매개 변수는 경로 URL의 마지막 세그먼트로만 나타날 수 있습니다." – Bipul

+0

@Bipul, 경로를 다시 정렬하십시오. URL에 슬래시를 넣는 방법은 하나 뿐이지 만 대시로 바꿀 수도 있습니다. – jfar

-2

@jfar가 아마도 가장 좋은 해결책을 가지고 있습니다. \를 - 또는 $ 또는 URL에 친숙한 다른 것으로 대체하십시오.