我有一个有效的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,而没有公共控制器的虚拟子目录?
答案 0 :(得分:2)
创建自定义路线(它需要是表格中的第一条路线)
routes.MapRoute(
name: "Hello",
url: "Hello",
defaults: new { controller = "Whatever", action = "WhateverElse" }
);
然后/Hello
将重定向到/Whatever/WhateverElse