Asp.net mvc URL中的下划线不使用属性路由

Asp.net mvc URL中的下划线不使用属性路由,asp.net-mvc,asp.net-mvc-5.1,Asp.net Mvc,Asp.net Mvc 5.1,Visual Studio 2013 IDE中出现以下问题。当部署到IIS时,它似乎工作正常 我有一个如下所示的属性路由: [Route("SiteCode/{sites:alpha?}")] 当我请求/SiteCode时,它可以正常工作。当我包含一个参数,比如/SiteCode/something时,它也可以正常工作。然而,当URL为/SiteCode/some_thing时,它找不到控制器,我得到一个404 此选项适用于SiteCodes参数中的下划线: [Route("Perf

Visual Studio 2013 IDE中出现以下问题。当部署到IIS时,它似乎工作正常

我有一个如下所示的属性路由:

    [Route("SiteCode/{sites:alpha?}")] 
当我请求/SiteCode时,它可以正常工作。当我包含一个参数,比如/SiteCode/something时,它也可以正常工作。然而,当URL为/SiteCode/some_thing时,它找不到控制器,我得到一个404

此选项适用于SiteCodes参数中的下划线:

[Route("Performance/{CountryIDs?}/{StateIDs?}/{SiteCodes?}/{Titles?}/{StartDate:datetime?}/{EndDate:datetime?}")]
有什么想法吗?

根据
alpha
约束只匹配大写和小写拉丁字符,下划线不在其中

如果要允许下划线,可以使用以下约束:

regex(^[a-zA-Z_]+$)

谢谢你的回答!