Если вы хотите разрешить этот URL, вы можете сделать
routes.MapRoute("Root", "Home",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
Но вы хотите перенаправления, и это имеет смысл, так что ...
Еще одна вещь, которую вы можете сделатьэто создать еще один контроллер Redirector и действие Home.
public class RedirectorController : Controller
{
public ActionResult Home()
{
return RedirectPermanent("~/");
}
}
Затем вы устанавливаете маршруты следующим образом:
routes.MapRoute("Root", "Home",
new { controller = "Redirector", action = "Home"});
Не забудьте добавить маршрут в начало ваших маршрутов, чтобы общиймаршруты не совпадают.
Обновление:
Еще одна вещь, которую вы можете сделать, добавить это в конец ваших маршрутов:
routes.MapRoute("Root", "{controller}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
Но это еще не редирект.Таким образом, можно изменить перенаправитель на общий: ...
public class RedirectorController : Controller
{
public ActionResult Redirect(string controllerName, string actionName)
{
return RedirectToActionPermanent(actionName, controllerName);
}
}
Тогда маршрут (который должен быть теперь в нижней части всех маршрутов) будет:
routes.MapRoute("Root", "{controllerName}",
new { controller = "Redirector", action = "Redirect",
controllerName = "Home", actionName = "Index" });
Так, он попытается перенаправить на действие Index контроллера с тем же именем, что и / name.Очевидным ограничением является название действия и передаваемые параметры.Вы можете начать строить поверх него.