Имеем следующий маршрут в ASP.NET MVC приложении:
routes.MapRoute("Contact", "Contact", new { controller = "Home", action = "Contact" });
Что означает, что при запуске приложения, если мы руками напишем адрес
http://localhost:14264/Home/Contact
то проблем не будет.
Но вот если мы напишем так:
http://localhost:14264/Home/Contact/Foo
то здесь мы, логично, получим ошибку 404 - такая страница не найдена.
Итак вопрос: как сделать так, что б при вводе в поисковую строку какие-то дополнительные символы и тд после Contact - нас всё равно кидало на Contact, в случае если после ничего нет?
Ну вообще как вариант можно сделать универсальную страничку для ошибки 404 что б при любом неверном запросе пользователя вылазило не дефолтное окно 404 и куча непонятного для простого смертного текста про ошибку на какой-то строке кода при формировании ссылки, а адекватное аккуратное окошко с соответствующим сообщением, и , например, возможностью вернуться на главную страницу сайта. Как по мне, то этот вариант был бы лучшим решением для проблемы.
К тому же, вы же понимаете, что если сделать переадресацию на Contact, то:
1. Если написать это только для строки формирования маршрута от Contact, то если пользователь напишет какой-то бред без точного соблюдения маршрута до этого момента - вас всё равно кинет на универсальную страничку 404 с кучей "бреда".
http://localhost:14264/Home/ContactFoo // в данном случае уже будет 404, а не ваш "откат назад"
2. Если переадресовать любую ошибку на срабатывание Contact - то при возникновении любой ошибки вас всегда будет кидать на Contact. Так чем же это отличается от типичной универсальной странички 404?)
С другой стороны, если вам нужно что б именно после ...Contact/ пользователь "ошибался", и только тогда возникала ошибка, то можете модифицировать в файлике RouteConfig строку где формируется ваша уникальная ссылка следующее:
routes.MapRoute("Contact", "Contact/{*pathinfo}", new {controller = "Home", action = "Contact "});
Должно помочь.
Но на вашем месте я бы всё равно подумала про универсальную страничку для ошибки 404)