3

如何在 MVC4 中设置默认控制器?

我尝试将以下代码添加到 Global.ascx 但它说“只有赋值、调用、递增、递减和新对象表达式可以用作语句”,似乎找不到“路线”,确实我放错地方了?

routes.MapRoute(
        "Default", 
        "{controller}/{action}/{id}", 
        new { controller = "Home", action = "Index", 
        id = UrlParameter.Optional }
);

下面是截图: 在此处输入图像描述

4

4 回答 4

3

查看 App_Start/RouteConfig.cs 文件。在这里,您将能够以您想要的方式配置路由。

在那里,您会找到类似于以下的代码:

public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
    }
于 2013-10-14T03:44:36.933 回答
3

您需要将此代码 RouteConfig.cs放在App_Start.

检查ASP.NET MVC 4:所有 Global.asax 路由都到哪里去了?

于 2013-10-14T03:44:48.787 回答
1

建议使用的答案RouteConfig是正确的,但有点误导。没有什么神奇的RouteConfig;它只是您根据约定创建、命名和定位的类。

重要的部分是您通常传递给的内容RouteConfigRouteTable.Routes

路由表可从 ASP.Net 应用程序中的任何位置获得。例如,你可以说:

protected void Application_Start()
{
    RouteTable.Routes.MapRoute( "myroute", "apples", new { controller = "Foo", action = "Bar" } );
}

它会工作得很好。当然,你应该只在启动时初始化路由并遵循RouteConfig一致性的约定。

但值得知道它为什么起作用。

于 2013-10-14T03:58:19.220 回答
0

请在您的 RouteConfig.cs 文件中更改它

于 2013-10-14T03:47:26.983 回答