Маршруты.Карта путаницы
Я знаю, что это общий подход:
routes.MapRoute
(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Но если я попробую вот так:
routes.MapRoute
(
name: "Defaults",
url: "Home/Index/1"
);
Это не даст никакой ошибки при запуске проекта. я имею Controller = Home
Action = Index()
в моем HomeController
но почему это дает ошибку, пока я печатаю это http://localhost:1702/Home/Index/1
в моем браузере?
Ошибка: Совпадающий маршрут не включает значение маршрута "контроллер", которое является обязательным.
Какая часть является обязательной в маршрутизации? Другой вопрос: зачем нам Route Name
?? Если я дам name=""
работает нормально, даже если существует более одного маршрута name=""
2 ответа
Ты нуждаешься в этом:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
URL-адрес, чтобы определить структуру URL-адреса для конечного пользователя. Вы даже можете изменить его на
url: "{action}/{controller}/{id}"
Таким образом, чтобы понять, какой контроллер, а какое действие, вы должны предоставить структуру URL.