Маршрут по умолчанию выглядит следующим образом в global.asax:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {controller = "Home", action = "Index", id = UrlParameter.Optional},
);
Это означает, что контроллер "Home"
будет использоваться, если он не был указан (как в http://yoursite/
). Действие по умолчанию "Index"
(как в http://yoursite/somename/
).
Перенаправление на домашнюю страницу сайта
Обладая этими знаниями, мы можем использовать RedirectToRoute
для посещения домашней страницы сайта и контроллера. Начнем с контроллера:
return RedirectToRoute("Default");
Перенаправление к стандартному действию контроллера
Если мы хотим перейти к действию по умолчанию для контроллера, мы можем использовать имя действия напрямую, как в:
return RedirectToAction("Index");
или укажите контроллер в RedirectToRoute
:
return RedirectToRoute("Default", new { controller = "somename" });
Но это приведет к дублированию кода в каждом контроллере, поэтому давайте переместим код в наш BaseController
вместо этого:
public ActionResult RedirectToHome()
{
return RedirectToRoute("Default", new { controller = RouteData.Values["controller"] });
}