Tôi đang cố định cấu hình định tuyến trong dự án MVAP4 WebAPI của mình.Định tuyến dựa trên tên tham số chuỗi truy vấn
Tôi muốn để có thể tìm kiếm các sản phẩm dựa trên tên của họ hoặc loại của họ như vậy:
/api/products?name=WidgetX
- trả về tất cả các sản phẩm được đặt tên WidgetX /api/products?type=gadget
- trả về tất cả sản phẩm thuộc loại tiện ích
Các đường bay được định cấu hình như sau:
config.Routes.MapHttpRoute(
name: "Get by name",
routeTemplate: "api/products/{name}",
defaults: new { controller = "ProductSearchApi", action = "GetProductsByName", name = string.Empty }
);
config.Routes.MapHttpRoute(
name: "Get by type",
routeTemplate: "api/products/{type}",
defaults: new { controller = "ProductSearchApi", action = "GetProductsByType", type = string.Empty }
);
Vấn đề là tên của tham số chuỗi truy vấn dường như bị bỏ qua nên tuyến đường đầu tiên luôn được sử dụng, bất kể tên của tham số chuỗi truy vấn. Làm cách nào để sửa đổi tuyến đường của tôi?
RouteParameter sẽ làm cho tôi sử dụng url như/products/abc mà sẽ đương nhiên không đáp ứng yêu cầu. Tôi cần để có thể sử dụng tham số chuỗi truy vấn. – rickythefox