2012-01-23 45 views
8

Trong tuyến đường mặc định MVCĐịnh tuyến: Cách ẩn tên hành động trong url?

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

bất cứ khi nào action index được truy cập, url không hiển thị tên hành động khi "Index" hành động được truy cập.

Tôi muốn nhận được hành vi đó trên một bộ điều khiển khác, đó là truy xuất dữ liệu cho một mục duy nhất. Tôi muốn hành động mặc định được đặt tên là "get" và cho hành động này tôi muốn url không hiển thị tên hành động, chỉ cần bộ điều khiển và id mục.

Tôi nghĩ rằng một con đường tương tự như trên, như thế này:

routes.MapRoute(
      "item_details", 
      "item/{action}/{id}", 
      new { controller = "item", action = "Get" } 
      ); 

sẽ làm các trick, nhưng nó mang lại cho tôi một url như localhost: xxxx/item/Nhận/152 ... gì tôi có bị mất không?

Trả lời

13

Hãy thử điều này:

routes.MapRoute(
     "item_details", 
     "item/{id}", 
     new { controller = "item", action = "Get" } 
     ); 
+0

Haha, mà không được lừa! Cảm ơn! –

+0

Chấp nhận làm câu trả lời :) – robasta

+0

Xong. Xin lỗi, có nghĩa là để làm điều đó ngày hôm qua, nhưng với thời gian tối thiểu do SO tôi về nhà trước khi tôi làm điều đó; o) –

0

Hãy thử điều này:

routes.MapRoute(
      "Default", // Route name 
      "{controller}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 
Các vấn đề liên quan