2009-05-07 27 views
6

Tôi đang cố gắng viết một cuộc gọi MapRoute sẽ thực hiện bất kỳ tuyến đường nào có tiền tố là "json /" prepend "json" vào tên của hành động. Ví dụ, một cái gì đó tuyến đường như thế này:Cách thêm tiền tố vào tất cả các hành động với Định tuyến URL ASP.Net MVC?

"json/{controller}/{action}" 

với "json/Foo/Bar", nó sẽ dẫn đến:

controller = "Foo" 
action = "jsonBar" 

ý tưởng Bất kỳ?

Trả lời

4

Tôi tự hỏi liệu sẽ không tốt hơn nếu đưa json vào dữ liệu tuyến đường và tìm kiếm trong hành động? tức là khi lập bản đồ tuyến đường của bạn, sử dụng một cái gì đó tương tự (ví giá trị mặc định):

new { mode="json", controller = "Home", action = "Index", id = "" } 

hoặc lập bản đồ các tuyến đường như:

"{mode}/{controller}/{action}" 

sau đó truy cập này trong bộ điều khiển:

string mode = (string) RouteData.Values["mode"]; 

(hoặc chuyển nó làm đối số)

Ngoài ra, bạn có khả năng viết trình xử lý định tuyến của riêng mình, nhưng thứ tại rất nhiều công việc.

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