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

Is there a simple way to map a single URL to another URL in ASP.NET MVC?

我有一个正在运行的 ASP.NET MVC 应用程序,我想向其中添加一个非常简单的 URL,我希望将其重定向到另一个 URL,没有控制器部分其中的路径。

即我希望能够告诉人们去 mySite。org/Hello 并让它引导他们到 mySite。org/Whatever/WhateverElse?myfun=9,或其他什么。

所以我在 PublicController 中添加了一个将 Hello 重定向到任何东西的方法,这有效,除了它需要我告诉人们去 mySite.org/PUBLIC/您好,我们不想在其中添加多余的单词 "public"。

经过数小时的混乱研究,我发现我或许可以在 Global.asax.cs 中添加一行,例如:routes.MapRoute(name: "Hello", url: "Public/Whatever"); ...或其他...但这实际上改变了所有内容的路由方式,并且在尝试了各种语法变体之后,似乎没有什么可以改变一个基本地址以映射到另一个基本地址。

有没有简单的方法让 mySite.org/Hello 映射到另一个 URL,而不需要 public 控制器的虚拟子目录?

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

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

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