Tôi thích:/Comments/Search/3? Sort = author. Chuỗi truy vấn là một nơi tốt để truyền các tham số có lập trình, đặc biệt nếu tham số (như trong trường hợp này) không quan trọng cho các mục đích SEO. Nếu tham số có một số ý nghĩa ngữ nghĩa làm cụm từ tìm kiếm, URL đầu tiên sẽ tốt hơn.
Trong một phương pháp điều khiển, bạn có thể sử dụng một cái gì đó như thế này:
public ActionResult Search(int id, string sort)
ASP.NET MVC sẽ tự động dây lên chuỗi truy vấn giá trị cho các tham số của phương pháp của bạn.
Sử dụng các tuyến đường sau
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Comments", action = "Search", id = "" } // Parameter defaults
);
/Comments/Tìm kiếm/3? Sort = tác giả sẽ gọi tìm kiếm (3, "tác giả")
/Comments/Tìm kiếm/3 sẽ gọi tìm kiếm (3 , null)
Hãy ghi nhớ rằng id là bắt buộc để url này sẽ thất bại: /Comments/Tìm kiếm
Nguồn
2009-06-09 08:48:19
Tôi nghĩ rằng tôi muốn đi cho giải pháp này. Làm cách nào để định tuyến và đặt mặc định, vì sắp xếp = 3 là tùy chọn? – pistacchio
Do quy ước về cấu hình, hãy nhớ rằng các tham số của bạn cho phương thức của bạn PHẢI được gọi là 'id' và 'sort' tương ứng. –
Trong MVC 2 bạn có thể sử dụng tham số UrlParameter.Optional và trong action sử dụng 'int? id' thay vì 'int id' nếu bạn muốn nó là tùy chọn và'/Comments/Search' để hiển thị giao diện người dùng tìm kiếm mặc định với văn bản đầu vào trống. – CallMeLaNN