Я очень новичок в ASP.Net MVC и пытаюсь изучить ASP.Net MVC 5. Я пытаюсь изучить его, создав образец проекта с нуля без строительных лесов. Я знаю, что можно указать Контроллер по умолчанию и Действие по умолчанию в RouteConfig.cs
, вызвав метод routes.MapRoute
. Но мне интересно, могу ли я установить контроллер и действие по умолчанию, используя атрибут Route без использования RouteConfig.cs
.
Изменить: я обнаружил, что это можно сделать, добавив следующую строку кода в метод RegisterRoutes
метода RouteConfig.cs
и удалив остальные строки.
routes.MapMvcAttributeRoutes();
После этого в действии контроллера, где мы хотим установить значение по умолчанию, просто добавьте атрибут [Route("~/")]
над действием. Это должно сделать это.
Но в случае проверки подлинности с помощью форм у нас будет представление входа в систему. Если у нас нет традиционной маршрутизации, то перенаправление к представлению входа не удастся, потому что маршрутизация на основе атрибутов для контроллера по умолчанию, который будет домашним, не перенаправляется на вход. Если мы также добавим атрибут [Route("~/")]
к действию входа, он выдаст сообщение об ошибке: «Обнаружено несколько типов контроллеров, соответствующих URL-адресу. Это может произойти, если маршруты атрибутов на нескольких контроллерах соответствуют запрошенному URL-адресу».