2010-01-13 5 views
1

MVC를 배우기 때문에 왜 작동하지 않는지 이해해야합니다.MVC 라우팅 문제

public static void RegisterRoutes(RouteCollection routes) 
    { 

     // Note: Change the URL to "{controller}.mvc/{action}/{id}" to enable 
     //  automatic support on IIS6 and IIS7 classic mode 

     //http://localhost/store/category/subcategory/product 

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


     routes.MapRoute(
      "Category",            // Route name 
      "store/{category}/{subcategory}",      // URL with parameters 
      new 
      { 
       controller = "Catalog", 
       action = "Index", 
       category = "Featured Items", 
       subcategory = "All Items" 
      } 
     ); 


     routes.MapRoute(
      "Default",            // Route name 
      "{controller}/{action}/{id}",       // URL with parameters 
      new { controller = "Home", action = "Index", id = "" }, // Parameter defaults 
      new { controller = @"[^\.]*" }       // Parameter constraints 
     ); 


    } 

내가 웹 응용 프로그램을 시작할 때 나는 다음 URL을 참조해야 라우팅을 이해하는 방법 :

HTTP : 여기

내 라우팅입니다/로컬 호스트/상점/

무엇 나는 두 번째 경로를 얻는다 ....

두 번째 경로를 "home/{action}/{id}"로 변경하면 어떤 경로도 잡지 않는다.

이 점을 이해할 수 있도록 도와주세요. 감사합니다.

답변

0

경로는 기본 URL을 지정하지 않습니다. 기본 URL은 앱에서 처리합니다. 라우팅은 http://localhost/store/bikes/mountain을 볼 때 카탈로그 컨트롤러를 사용하도록 지정합니다. 그러나 기본 URL은 지정하지 않습니다. 당신은 그것을 프로젝트 속성에 입력해야합니다.

두 번째 컨트롤러를 변경하지 않는 것이 좋습니다. 모든 컨트롤러에 대해 그룹화를 만들지 않는 한 기본값 그대로 유지하는 것이 가장 좋습니다. 그러면 모든 URL을 포착 할 수 있습니다. URL을 필요로 두 번째로 사용자가 변경 될 수 있습니다 : 기본 설정이 http://localhost/home/index을 잡는다 반면

http://localhost/home/home/index에서, HomeController의 색인 작업을 일치 ... 이해가

합니까?