【发布时间】:2014-03-18 12:07:34
【问题描述】:
我的 ProductController 中设置了 Products 两个功能
public IEnumerable<ProductResponse> Get()
[HttpGet]
[ActionName("search")]
public IEnumerable<ProductResponse> SearchProducts([FromUri]string keyword)
调用 /api/products 使 Get() 函数执行,我得到所有产品的列表。调用 /api/products/search/?keyword="test" 使 SearchProduct() 函数执行,我得到按关键字过滤的所有产品的列表。
但是,当我在没有指定关键字参数的情况下调用 /api/products/search/ 时,我想返回错误,而是执行 Get() 函数。如果未指定参数,如何防止控制器默认为 Get() 函数并返回错误。这是我的路线。
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApiWithAction",
routeTemplate: "api/{controller}/{action}",
defaults: new { controller = "products", action = "search" }
);
【问题讨论】:
标签: asp.net-mvc asp.net-web-api asp.net-mvc-routing default