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

时间:2014-06-29 01:04:23

标签: asp.net-mvc-5 asp.net-routing

使用新的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以便我需要三条路径来控制我的控制器?

1 个答案:

答案 0 :(得分:13)

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

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

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