如何在asp.net MVC 4和MVC 5中设置默认控制器

Adr*_*BEN 106 c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-5

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

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

Dav*_*ich 164

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

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

作为默认登录页面.您可以将其更改为您希望的任何路线.

routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters*
        new { controller = "Sales", action = "ProjectionReport", 
        id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)

  • 在MVC 4中,默认路由在App_Start/RouteConfig.cs中设置 (13认同)
  • 当默认路由中引用的控制器位于另一个区域(即不是根区域)时,如何使其工作? (2认同)

Nim*_*esh 29

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 });
}
Run Code Online (Sandbox Code Playgroud)

如果仍然没有工作,那么在下面的步骤

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

1)右键单击您的项目解决方案

2)选择属性

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

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

请看一下在此输入图像描述 屏幕截图.

  • 您的"第二种方式"是关于调试Web项目时会发生什么.它与"默认控制器"无关,即当您导航到站点的登录页面时显示的页面. (15认同)

Amn*_*Ali 24

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

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

那么,以下是如何设置默认区域:

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" });
Run Code Online (Sandbox Code Playgroud)

  • @GusCrawford什么是'区域'?来自http://msdn.microsoft.com/en-us/library/ee671793(VS.100).aspx:为了适应大型项目,ASP.NET MVC允许您将Web应用程序划分为更小的单元(称为区域).区域提供了将大型MVC Web应用程序分成较小功能组的方法.区域实际上是应用程序内的MVC结构.应用程序可以包含多个MVC结构(区域). (2认同)