每个控制器使用MVC属性路由多个RoutePrefixes?

Mat*_*ete 6 asp.net-routing asp.net-mvc-5

使用新的MVC属性路由,我知道您可以Route为单个分配多个属性ActionResult,但我正在寻找在该RoutePrefix级别执行相同操作的方法.我有一个控制器,在每个动作中都应该可以通过三种途径访问:

/Games/{Title}/Characters/{Route} /Books/{Title}/Characters/{Route} /Cinema/{Title}/Characters/{Route}

我尝试了三个单独的RoutePrefix属性,但是我得到了错误Deuplace RoutePrefix attribute.如果我尝试使用以逗号分隔的列表,我会得到Best override method for does not contain a constructor that takes 3 arguments.

是否可以设置一个RoutePrefix所需的三个路径我的控制器?

Mat*_*ete 13

运行一堆测试我发现我可以Route在控制器级别添加3个属性,它可以按我想要的方式工作.

编辑:一个更好的方法,我发现使用正则表达式匹配方法

[RoutePrefix("{Type:regex(Games|Cinema|Books)}/{SectionRoute}/Character/")]

  • 不要认为那是可能的。它会抛出重复的 RoutePrefix 属性。 (2认同)