2014-03-13 73 views
0

是否有可能在路由配置中使用通配符?Asp.Net MVC 4通配符路由映射器挑戰

我要讓
http://localhost/documents-about-cats?animal_id=4&type_id=2
路線到:
http://localhost/home/search?animal_id=4&type_id=2

而且
http://localhost/browse-documents-about-cats?animal_id=4&page=1
路線到:
http://localhost/browse/index?animal_id=4&page=1

但是!
http://localhost/
必須路由到:
http://localhost/home/index

林希望MVC 4路由映象可以處理通配符,所以我可以做這樣的事情:

但這些航線的映射似乎
 routes.MapRoute(
      "Search",   // Route name 
      "documents-about-*", // URL with parameters 
      new { 
       controller = "Home", 
       action = "Search" 
      } 
     ); 

     routes.MapRoute(
      "Browse",     // Route name 
      "browse-documents-about-*", // URL with parameters 
      new { 
       controller = "Browse", 
       action = "Index" 
      } 
     ); 

     routes.MapRoute(
      "Default",   // Route name 
      "",     // URL with parameters 
      new { 
       controller = "Home", 
       action = "Index" 
      } 
     ); 

不工作?

回答

0

我剛纔遇到剷球上面如下問題一個帖子:

 routes.MapRoute(
      "Search",   // Route name 
      "documents-about-{any}", // URL with parameters 
      new 
      { 
       controller = "Home", 
       action = "Search", 
       any = UrlParameter.Optional 
      } 
     ); 

     routes.MapRoute(
      "Browse",     // Route name 
      "browse-documents-about-{any}", // URL with parameters 
      new 
      { 
       controller = "Browse", 
       action = "Index" 
      } 
     ); 

     routes.MapRoute(
      "Blank",   // Route name 
      "",     // URL with parameters 
      new 
      { 
       controller = "Home", 
       action = "Index", 
       any = UrlParameter.Optional 
      } 
     ); 

這似乎所需的所有場景中工作 - 任何人都可以證實,這是做到這一點的正確方法是什麼?