ASP.NET MVC路由参数,可能有连字符

时间:2016-03-28 19:46:39

标签: c# asp.net-mvc asp.net-mvc-routing

我们有一个工作控制器,如下所示。 名称 参数可以是“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 );
}

有没有办法配置东西,以便使用连字符参数?

1 个答案:

答案 0 :(得分:1)

是的,有一种配置方式可以使连字参数起作用。

删除alpha约束:

  

{x:alpha}匹配大写或小写拉丁字母字符(a-z,A-Z)

通过包含带连字符的参数,它与您当前使用的约束不匹配。

在ASP.NET Web API 2中的属性路由中查看Route Constraints