我正在开发一个ASP.NET MVC Web应用程序。默认情况下,浏览到目录的根似乎调用控制器的Index()
方法。有没有办法在这里更改默认调用哪个方法?我知道我可以命名我想称之为“索引”的方法,它可能会有效,但我想知道是否有办法将目录root指向我选择的方法。
例如:mysite.com/MyDirectory/
会调用Index()
,这有效地浏览到mysite.com/MyDirectory/Index
。我想更改它,以便mysite.com/MyDirectory/
调用Details
,(或“浏览”到mysite.com/MyDirectory/Details
)。
答案 0 :(得分:0)
只需更改默认路线中的操作即可。像这样:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Details", id = UrlParameter.Optional } // Parameter defaults
);
答案 1 :(得分:0)
您可以指定路线中的行为。如果您使用的是最新版本的MVC,那将在您的 \ App_Start \ RouteConfig.cs
中你会有类似的东西:
routes.MapRoute(
name: "MyDirectory",
url: "MyDirectory",
defaults: new { controller = "MyDirectory", action = "Details" });
您可以将它放在默认路由之前,因为您的路由表有点像在找到的第一条路由上匹配的switch语句。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "MyDirectory",
url: "MyDirectory",
defaults: new { controller = "MyDirectory", action = "Details" });
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}