방금 MVC 4에서 5로 업그레이드하고 속성 라우팅을 사용하기 시작했습니다. 완벽하게 작동하며 구현하기 쉽습니다.MVC 특성 라우팅, 이전 URL 리디렉션
그러나 웹 사이트가 몇 달 동안 올라 왔기 때문에 검색 엔진을 비롯하여 웹 사이트 링크가 많이 있습니다. 이전 URL이 작동하지 않아 영구적으로 리디렉션해야합니다. 가장 좋은 방법은 무엇이 될지 모르겠습니다. 나는 route.config에서 라우트를 생성하면 라우팅 애트리뷰트의 백업으로 작동 할 것이라고 생각했다. 하지만 그것은 작동하는 유일한 것 같습니다 (첫 번째 제공).
예 .. 이전 URL :/은행/5 새로운 URL :/superbank/5
속성 경로는 다음과 같습니다
[Route("superbank/{id}")]
그리고 route.config :
을routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.LowercaseUrls = true;
routes.MapMvcAttributeRoutes();
routes.MapRoute(
"BankDetails",
"bank/{id}",
new { controller = "Home", action = "bank" }, //the action is still called bank, not superbank
new { id = @"^\d+$" }
);
이 코드를 사용하면 은행/5가 아닌 슈퍼 뱅크/5 만 작동합니다. MapRoute 아래에 MapMvcAttributeRoutes()를 삽입하면 ur ls가 작동하고 프로젝트의 모든 URL이 만들어지고 은행/5를 가리 킵니다.
아이디어가 있으십니까? global.asax 또는 IIS url rewrite를 사용해야합니까? 만합니다 (id
매개 변수) 하나 개의 경로를 리디렉션 할 것을있는 경우
액션 이름을 바꾸고 싶지는 않지만 route bank/{id}와 (과) superbank/{id}를 사용하여 액션을 만들 수는 없습니다. 그리고 단지 하나의 행동이 아니라 총 30 개 정도입니다 :) – Andreas