2008-11-10 36 views
11

Tôi cần giúp đỡ với điều này bản đồ lộ trìnhtuyến ASP.NET MVC

routes.MapRoute("Blog_Archive", 
       "Blog/Archive/{year}/{month}/{day}", 
       new { 
         controller = "Blog", 
         action = "archive", 
         year = "", 
         month = "", 
         day = "", 
         page = 0 
        }); 

Khi tôi gọi http://localhost:5060/blog/Archive/2008/11, nó nhặt năm và tháng và gửi nó tới bộ điều khiển. Nhưng khi tôi thử http://localhost:5060/blog/Archive/2008
nó sẽ gửi đến bộ điều khiển nhưng tham số năm là rỗng và tất cả các tham số khác cũng vậy.

+1

Xenph Yan cảm ơn cho kiểm tra chính tả – Nesizer

Trả lời

11

Bạn có bất kỳ Tuyến đường nào khác cho Blog/Lưu trữ/{something} không?

Sử dụng Routing Debugger để xem tuyến đường nào thực sự bị trúng, nhiều khả năng nó không đạt được tuyến đường đó.

+0

Rất khuyên bạn nên gỡ lỗi định tuyến! –

+0

kiểm tra respones của tôi cảm ơn sự giúp đỡ nó hoạt động ngay bây giờ – Nesizer

3
public static void RegisterRoutes(RouteCollection routes) 
    { 

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

     routes.MapRoute(
      "Blog", 
      "Blog/{action}/{id}", 
      new 
      { 
       controller = "Blog", 
       action = "show", 
       id = "" 
      }); 

     routes.MapRoute("Blog_Archive", "Blog/Archive/{year}/{month}/{day}", 
      new { 
       controller = "Blog", 
       action = "archive", 
       year = "", 
       month = "", 
       day = "", 
       page =0 
      }); 

     routes.MapRoute(
      "Xfire",          
      "Xfire/{action}/{id}",      
      new 
      { 
       controller = "Xfire", 
       action = "show", 
       id = "" 
      }); 

     routes.MapRoute(
      "Photos",           
      "Photos/{action}/{id}",       
      new 
      { 
       controller = "Photos", 
       action = "show", 
       id = "" 
      }); 

     routes.MapRoute("About","About", 
         new 
         { 
          controller = "home", 
          action = "about" 
         }); 

     routes.MapRoute("Default", "{controller}/{action}/{id}", 
      new 
      { 
       controller = "Blog", 
       action = "show", 
       id = "" 
      }); 

     routes.MapRoute("Error", "{*url}", new 
     { 
      controller = "Home", 
      action = "Http404" 
     , 
     }); 

    } 

tìm thấy lỗi

routes.MapRoute("Blog","Blog/{action}/{id}", 
        new { 
      controller = "Blog", 
         action = "show", 
         id = "" 
         }); 

là trước

routes.MapRoute("Blog_Archive", "Blog/Archive/{year}/{month}/{day}", 
        new { 
         controller = "Blog", 
         action = "archive", 
         year = "", 
         month = "", 
         day = "", 
         page =0 
         }); 
0

Subnus, tôi nhận thấy trong mã của bạn rằng bạn có routes.IgnoreRoute ("favicon.ico"); Tôi không nghĩ rằng điều này là bắt buộc với MVC 1.0 ngay vì khoảng thời gian không còn bị bỏ qua chính xác nữa?

+0

câu hỏi này là tôi liên quan đến bản Beta 2 của asp.net mvc và không phải là phiên bản phát hành hiện tại của mvc và câu hỏi không phải là về các tuyến đường bỏ qua – Nesizer

Các vấn đề liên quan