Это связано с настройкой маршрутизации по умолчанию в Global.asax.cs:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Это позволяет настроить маршрут со значениями по умолчанию как для контроллера, так и для действия.Таким образом:
/Home/Index
будет сопоставлять этот маршрут с контроллером, а значения действий, явно заданные /Home
, будут соответствовать маршруту Default
, а конфигурация маршрутизации предоставит контроллер по умолчаниюof "Home" /
будет соответствовать маршруту Default
, а в конфигурации маршрутизации будет предоставлен контроллер по умолчанию и действие
Вы можете изменить это, удалив controller = "Home", action = "Index"
изтретий аргумент MapRoute
.Это удаляет значения по умолчанию и требует, чтобы URL-адрес явно указывал контроллер и действие.
Вы хотели бы, чтобы второй MapRoute
вызов явно указывал маршрут домашней страницы:
// route the root URL to the home page controller/action
routes.MapRoute("HomePage", "", new { controller = "Home", action = "Index" });
В противном случае запрос к http://yourdomain.com не будет направлен на какой-либо контроллер / действиепару, и вы получите 404 вместо домашней страницы.