Я уже давно играю с ASP.Net MVC. Я обнаружил, что самая трудная вещь, чтобы получить право - таблица маршрутизации.
Я обнаружил, что большинство примеров оставляют маршрут по умолчанию на месте. Я обнаружил, что это приводит к большому количеству ошибок, когда маршрут по умолчанию перенаправляет на HomeController с действием, которое не существует. Приводит к странным сообщениям об ошибках, где вы ожидаете увидеть простой 404.
В конце концов я остановился на настройке маршрутизации, в которой я явно определяю все комбинации контроллера / действия, которые я хочу разрешить с универсальным заголовком в конце для перенаправления на страницу 404, на которой отображается разумное сообщение об ошибке.
Я что-то здесь упускаю? Или это действительно хороший способ сделать что-то?
Глядя на полученные ответы, думаю, мне лучше немного прояснить вопрос.
Я пытаюсь обезопасить схему маршрутизации создаваемого веб-сайта. Я заметил, что когда я оставляю в маршруте по умолчанию {controller} / {action} / {id} все виды URL-адресов, где я хотел бы отобразить ошибку 404, фактически перенаправляются на HomeController с недопустимым действием и приводят к некоторой ужасной ошибке сообщение вместо.
Я немного запутался, потому что большинство примеров кода просто оставляют маршрут по умолчанию. Есть ли причина, по которой он есть, или его можно удалить?
Схема, которую я сейчас использую, выглядит примерно так
routes.MapRoute( "About", "About", new {controller = "Page", action = "About"} );
routes.MapRoute( "SignIn", "SignIn", new {controller = "Page", action = "SignIn"} );
routes.MapRoute( "SignOut", "SignOut", new {controller = "Page", action = "SignOut"} );
routes.MapRoute( "Authenticate", "Authenticate", new { controller = "Authentication", action = "Authenticate" });
routes.MapRoute("CatchAll", "{*url}", new { controller = "Error", action = "Http404" });
У меня есть маршрут, указанный для каждого действия в системе. И ловушка для отображения 404 в конце. Это хороший способ сделать это или есть более простой способ сделать схему маршрутизации надежной?