如何在不键入“Home”的情况下在HomeController中进行操作?

时间:2009-02-28 18:34:26

标签: asp.net-mvc routing

我的HomeController正在控制某些页面,比如'Index',还有一些像'Contact','About Us'。

但是,如果我输入:

www.blabla.com/

将调用“索引”并且它可以正常工作。

但是,如果我输入:

www.blabla.com/AboutUs

根本不起作用!如果我键入它,它就可以工作:

www.blabla.com/Home/AboutUs

如何在HomeController中完成所有操作而不在其前键入“Home”?

1 个答案:

答案 0 :(得分:4)

你必须制作一个看起来像这样的路线。

routes.MapRoute("AboutUs", "AboutUs",
                new
                {
                    controller = "Home",
                    action = "AboutUs"
                });

您可以在Global.asax文件中找到您的路线。

原因是如果您检查Global.asax文件,您应该看到一个适用于控制器/操作URL路由的默认路由。因此,如果你想要/ MyMethod,你必须为它创建一个路径。

你也可以尝试类似的东西。

routes.MapRoute("HomeActions", "{action}",
                new
                {
                    controller = "Home",
                    action = "Index"
                });

这应该允许您通过使用/.

访问所有家庭控制器操作