107

如何在不设置HomeController的情况下为我的ASP.NET MVC 4 项目设置默认控制器?

应用程序启动时如何设置默认区域?

4

4 回答 4

168

最好的方法是改变你的路线。默认路由(在您的 App_Start 中定义)设置/Home/Index

routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters*
        new { controller = "Home", action = "Index", 
        id = UrlParameter.Optional }
);

作为默认登陆页面。您可以将其更改为您想要的任何路线。

routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters*
        new { controller = "Sales", action = "ProjectionReport", 
        id = UrlParameter.Optional }
);
于 2013-01-20T16:30:23.673 回答
31

App_Start文件夹中的RouteConfig.cs中设置以下代码

public static void RegisterRoutes(RouteCollection routes)
{
 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
 routes.MapRoute(
 name: "Default",
 url: "{controller}/{action}/{id}",
 defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional });
}

如果仍然无法正常工作,请执行以下步骤

第二种方式: 您只需按照以下步骤操作,

1)右键单击您的项目

2) 选择属性

3)选择Web选项,然后选择特定页面(控制器/视图),然后设置您的登录页面

在这里,Account 是我的控制器,Login 是我的操作方法(保存在 Account Controller 中)

请看随附的在此处输入图像描述屏幕截图。

于 2014-08-04T04:29:27.817 回答
26

我没有看到这个问题得到回答:

应用程序启动时如何设置默认区域?

因此,这是设置默认区域的方法:

var route = routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    ).DataTokens = new RouteValueDictionary(new { area = "MyArea" });
于 2013-12-31T14:55:08.577 回答
2

如果您只有一个控制器,并且您想访问 root 上的每个操作,您可以像这样跳过控制器名称

routes.MapRoute(
        "Default", 
        "{action}/{id}", 
        new { controller = "Home", action = "Index", 
        id = UrlParameter.Optional }
);
于 2017-06-01T09:29:59.267 回答