我试图在我的MVC4 WebAPI项目中配置路由。基于查询字符串参数名称的路由
我希望能够基于他们的名字或他们的类型,像这样以搜索产品:
/api/products?name=WidgetX
- 返回名为WidgetX /api/products?type=gadget
所有产品 - 返回
的路线是类型的小工具的所有产品配置是这样的:
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 }
);
的问题是,查询字符串参数的名称似乎被忽略,因此第一条路线是一直使用的一个,无论查询字符串参数的名称。 如何修改我的路线以获得正确的路线?
RouteParameter会让我使用像/产品/ ABC这当然会不符合要求的URL。我需要能够使用查询字符串参数。 – rickythefox