는 우리는 우리의 라우팅 테이블이 같은 종류의 설정 한 :이 URL을 /Foo.aspx
처럼 수 있으며 FooController.Index
에도 /Foo
에 제대로 경로라우팅 테이블 주문 문제
// ... specific routes
routes.MapRoute(
"aspx",
"{controller}.aspx/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
. 나는 이것이 이전 버전과의 호환성을 위해 추가되었다고 생각한다. 그러나 을 사용하여 UrlHelper.Action
을 사용하여 URL을 생성 할 때 URL의 더 거친 버전이 사용됩니다. 예를 들어 Url.Action("Bar", "Foo")
은 Foo.aspx/Bar
입니다.
생성 된 URL에 청소기 Default
경로를 사용하고 싶습니다. 두 개의 MapRoute
호출을 바꾸면이 작업이 수행되지만 .aspx
은 {controller}
자리 표시 자에 포함 된 것으로 간주되므로 은 더 이상 FooController
으로 라우팅되지 않습니다.
URL 매개 변수 MapRoute
에 경로를 넣고 aspx
경로 앞에 둘 다 허용하도록 할 수있는 방법이 있습니까? 당신이 Html.RouteLink
을 시도 할 수 있습니다
이 개념을 유지하면서 두 번째 라우터를 정의하고이를 기본 htmlhelper의 마지막 매개 변수로 사용할 수 있습니까? – jcolebrand
그게 효과가; 그러나 액션과 컨트롤러를 매개 변수로 경로에 전달하지 않고 MVC 액션과 컨트롤러 이름을 계속 처리 할 수있는 솔루션을 찾고 싶습니다. – Jacob
@Jacob RouteOption에서 컨트롤러 및 작업 이름을 익명 개체로 전달할 수 있습니다. –