我们有一个工作控制器,如下所示。 名称 参数可以是“Widget”,“A09912”或“W-0-090-B”。当参数中有连字符时,路由失败。
[HttpGet]
[Route( @"Product/{name:alpha}" )]
public ActionResult Index( string name )
{
IList<Product> list = Repository.GetByName( name );
return View( list );
}
有没有办法配置东西,以便使用连字符参数?
答案 0 :(得分:1)
是的,有一种配置方式可以使连字参数起作用。
删除alpha
约束:
{x:alpha}匹配大写或小写拉丁字母字符(a-z,A-Z)
通过包含带连字符的参数,它与您当前使用的约束不匹配。
在ASP.NET Web API 2中的属性路由中查看Route Constraints