Если у меня есть маршрут:Как получить общие маршруты в ASP.NET MVC, но обрабатывать неизвестные действия?
routes.MapRoute(
"RouteName", // route name
"{action}", // url with parameters
new { controller = "Home", action = "Index", id = "" } // parameter defaults
);
Я хочу, чтобы быть в состоянии поймать URL, формы:
http://sitename.com/about
http://sitename.com/contact
http://sitename.com/others
Это, очевидно, работает, когда действие существует в главном контроллере, который носит название нужный URL. Если я ввожу ошибочный URL-адрес, например http://sitename.com/foo, и действие foo не существует в Домашнем контроллере, я хотел бы направить приложение на 404 страницу, которая не найдена, но, очевидно, если я вхожу в foo, она ищет foo действий в домашнем контроллере. Есть ли способ оставаться общим без жесткого кодирования всех подстраниц в global.asax. Если это вообще возможно, я хочу воздержаться от:
routes.MapRoute(
"About", // route name
"about", // url with parameters
new { controller = "Home", action = "About", id = "" } // parameter defaults
);
routes.MapRoute(
"Contact", // route name
"contact", // url with parameters
new { controller = "Home", action = "Contact", id = "" } // parameter defaults
);
Спасибо.
Рассматривали ли вы с помощью пользовательских страниц ошибок, которые перенаправляют пользователя на определенном месте, когда они вводят неверный URL (среди других ошибок)? http://msdn.microsoft.com/en-us/library/h0hfz6fc(VS.71).aspx – Omar
Да, я добавил это в web.config, но глупо установил его в RemoteOnly. Извините за смешение. Этот вопрос можно закрыть. – user135383