2013-04-11 4 views
0

나는 간단한 asp.net 프로젝트를 만들었습니다.ASP.NET 웹 페이지 라우팅

유무 폴더 계정, 등 Register.cshtml, 로그인 ... 및 URL 같은 많은 파일 : 로컬 호스트/회원 가입, 로컬 호스트/로그인 : 로컬 호스트/계정/

이 원하는 등록합니다.

RouteTable.Routes.MapPageRoute("Account", "{Action}", "~/Account/{Action}"); 

을 그리고 그것은 작동하지 않습니다

는 _AppStart.cshtml에 매핑하기 위해 노력했다. ( msdn에서)이 하나 .... 당신이 MapPageRoute에지도 노선을 사용하는 모두의

//Default 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
      routes.MapRoute(
       "Default", 
       "", 
       new { controller = "Home", action = "Index", id = "" } 
      ); 

      //url rewriting 

      RouteTable.Routes.MapRoute(null, "Register/{ID}", new { controller = "Home", action = "Register" }); 

답변

0

첫째, MapPageRoute이기 때문에 시도

0

:

는 방법 O를 제공합니다은에 대한 경로를 정의 웹 응용 프로그램을

양식 그러나이 같은 코드를 수정하는 경우 :

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute("AccountRoute", "{Action}", new {controller = "Account"}); 

    routes.MapRoute(
        name: "Default", 
        url: "{controller}/{action}/{id}", 
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

매개 변수가없는 모든 요청은 다른 컨트롤러가 처리해야하는 경우에도 AccountRoute로 이동합니다. 이 작업 할

유일한 방법은 다음과 같이 코드를 작성하는 것입니다 :

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

//ALL routes you need 
routes.MapRoute("LoginRoute", "{Action}", new { controller = "Account", action = "Login" }); 
routes.MapRoute("RegisterRoute", "{Action}", new { controller = "Account", action = "Register" });    

//Default route in the end 
routes.MapRoute(
        name: "Default", 
        url: "{controller}/{action}/{id}", 
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
       );