如何更改ASP.NET MVC URL中的控制器文本?

Zac*_*ack 3 asp.net-mvc asp.net-mvc-routing

我最近被要求修改一个小的asp.net mvc应用程序,使得url中的控制器名称包含破折号.例如,我创建了一个名为ContactUs的控制器,其中包含一个名为Index and Sent的视图,其中url将是http://example.com/ContactUshttp://example.com/ContactUs/Sent.要求我进行更改的人希望网址为http:// example/contact-ushttp://example.com/contact-us/sent.

我不相信我可以更改控制器的名称,因为' - '将是类名中的非法字符.

我正在寻找一个可以应用于控制器类的属性,它可以让我指定控制器在url中使用的字符串,但我还没有找到.

我怎么能做到这一点?

Pet*_*r J 9

只需更改路径本身中使用的URL即可指向现有控制器.在你的Global.asax中:

routes.MapRoute(
  "Contact Us",
  "contact-us/{action}/",
  new { controller = "ContactUs", action = "Default" }
);
Run Code Online (Sandbox Code Playgroud)