有没有一种简单的方法可以将单个URL映射到ASP.NET MVC中的另一个URL?

时间:2015-02-04 04:40:45

标签: asp.net-mvc url-rewriting

我有一个有效的ASP.NET MVC应用程序,我想添加一个非常简单的URL,我希望将其重定向到另一个URL,而不包含Controller中的路径部分。

即。我希望能够告诉人们去mySite.org/Hello并将它们引导到mySite.org/Whatever/WhateverElse?myfun=9,或其他任何内容。

所以我在PublicController中添加了一个方法,将Hello重定向到任何可行的方法,除了它要求我告诉人们去mySite.org/PUBLIC/Hello,我们已经喜欢没有额外的词" public"在那里。

以后几个小时的混乱研究,我看到我可以在Global.asax.cs中添加一行,例如:routes.MapRoute(name:" Hello",url:" Public /无论&#34); ......或其他东西......但这实际上改变了所有路由的路由,并且在尝试了各种语法变体后,似乎没有任何东西只是改变一个基本地址来映射到另一个基本地址。

是否有一种简单的方法可以让mySite.org/Hello映射到另一个URL,而没有公共控制器的虚拟子目录?

1 个答案:

答案 0 :(得分:2)

创建自定义路线(它需要是表格中的第一条路线)

routes.MapRoute(
  name: "Hello",
  url: "Hello",
  defaults: new { controller = "Whatever", action = "WhateverElse" }
);

然后/Hello将重定向到/Whatever/WhateverElse