Estoy intentando configurar el enrutamiento en mi proyecto MVC4 WebAPI.Enrutamiento basado en el nombre del parámetro de cadena de consulta
Quiero ser capaz de buscar productos en función de su nombre o su tipo, así:
/api/products?name=WidgetX
- devuelve todos los productos mencionados WidgetX /api/products?type=gadget
- devuelve todos los productos de tipo de aparato
Las rutas están configurado de esta manera:
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 }
);
el problema es que el nombre del parámetro de cadena de consulta parece ser ignorado por lo que la primera ruta es siempre la que se utiliza, sin tener en cuenta el nombre del parámetro de cadena de consulta. ¿Cómo puedo modificar mi ruta para hacerlo bien?
RouteParameter me haría utilicen URL como/productos/ABC que por supuesto no cumplirían con el requisito. Necesito poder usar los parámetros de cadena de consulta. – rickythefox