【发布时间】:2013-01-03 19:01:30
【问题描述】:
如何为我的 ASP.NET MVC 4 项目设置默认控制器而不使其 HomeController?
应用启动时如何设置默认区域?
【问题讨论】:
-
作为根页面将从“/”更改为“/home”吗?此“/home”必须在客户的浏览器中可见。
标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-5
如何为我的 ASP.NET MVC 4 项目设置默认控制器而不使其 HomeController?
应用启动时如何设置默认区域?
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-5
最好的方法是改变你的路线。默认路由(在您的 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 }
);
【讨论】:
"AreaName/{controller}/{action}/{id}"
在 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 中)
请看附件截图。
【讨论】:
我没有看到这个问题得到回答:
应用启动时如何设置默认区域?
那么,您可以通过以下方式设置默认区域:
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" });
【讨论】:
如果你只有一个控制器,并且你想访问 root 上的每个操作,你可以像这样跳过控制器名称
routes.MapRoute(
"Default",
"{action}/{id}",
new { controller = "Home", action = "Index",
id = UrlParameter.Optional }
);
【讨论】: