Use MVC routing to alias a controller

2020-04-02 08:05发布

问题:

I have a controller called InstallationController, and a fancy report representation of an installation called a Rate Card, but the end user insists on calling installations themselves Rate Cards. I would like him to see the URL http://site/RateCard/Edit/3, where this gets routed actually as http://site/Installation/Edit/3. How can I do this in MVC 3 RC2?

回答1:

A couple of options are, you can either rename the controller to RateCardController, or add a new route that directs to the Installation controller, like:

routes.MapRoute(
               "RateCard", // Route name
               "RateCard/{action}/{id}", // URL with parameters
               new { controller = "Installation", action = "Index", id = UrlParameter.Optional } // Parameter defaults
               );