【问题标题】:How can I make actions work in the HomeController without typing "Home"?如何在不输入“Home”的情况下在 HomeController 中进行操作?
【发布时间】:2009-02-28 18:34:25
【问题描述】:

我的 HomeController 正在控制一些页面,如“索引”和其他一些页面,如“联系”、“关于我们”。

但是,如果我输入:

www.blabla.com/

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

但是,如果我输入:

www.blabla.com/AboutUs

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

www.blabla.com/Home/AboutUs

如何让 HomeController 中的所有操作在不输入“Home”的情况下工作?

【问题讨论】:

    标签: asp.net-mvc routing


    【解决方案1】:

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

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

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

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

    你也可以试试类似的。

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

    这应该允许您通过使用 / 来访问所有家庭控制器操作。

    【讨论】:

    • 感谢您回答乍得!但是,根据你告诉我的另一个问题......如果我的 HomeController 中有 10 个页面,我将不得不创建 10 个新路由?有没有办法说 HomeController 中的所有操作都将在没有“Home/”的情况下访问??
    • 谢谢,乍得!!你在下面告诉我的“你也可以尝试类似的东西”效果很好!谢谢,伙计!
    猜你喜欢
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多