ASP.NET 可能包含连字符的 MVC 路由参数
ASP.NET MVC route parameter that may have hyphens
我们有一个工作控制器,如下所示。
name 参数可能类似于 "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 );
}
有没有办法配置一些东西,使带连字符的参数起作用?
是的,有一种配置方法可以使带连字符的参数起作用。
删除 alpha
约束:
{x:alpha} Matches uppercase or lowercase Latin alphabet characters (a-z, A-Z)
通过包含带连字符的参数,它与您当前使用的约束不匹配。
查看 ASP.NET Web 中的属性路由中的 Route Constraints API 2
我们有一个工作控制器,如下所示。 name 参数可能类似于 "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 );
}
有没有办法配置一些东西,使带连字符的参数起作用?
是的,有一种配置方法可以使带连字符的参数起作用。
删除 alpha
约束:
{x:alpha} Matches uppercase or lowercase Latin alphabet characters (a-z, A-Z)
通过包含带连字符的参数,它与您当前使用的约束不匹配。
查看 ASP.NET Web 中的属性路由中的 Route Constraints API 2