Multiple RoutePrefixes per controller using MVC At

2019-02-10 07:20发布

问题:

With the new MVC Attribute routing, I know you can assign multiple Route attributes to a single ActionResult, but I am looking for a way to do the same at the RoutePrefix level. I have a controller which, in every action, should be accessible by three routes:

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

I tried putting three individual RoutePrefix attributes, but I get the error Deuplace RoutePrefix attribute. If I try to use a comma-separated list, I get Best override method for does not contain a constructor that takes 3 arguments.

Is it possible to set up a RoutePrefix so that it takes the three routes I want for my controller?

回答1:

Running a bunch of tests I found out that I can just add 3 Route attributes to the controller level and it works the way I want.

Edit: a better way to do it I found was using the regex match method

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