2008-08-21 8 views
18

Я хочу, чтобы иметь возможность захватить исключение, которое возникает, когда пользователь запрашивает несуществующий контроллер и перенаправляет его на страницу 404. Как я могу это сделать?Как перенаправить пользователя на пользовательскую страницу 404 в ASP.NET MVC вместо того, чтобы выбрасывать исключение?

Например, пользовательские запросы http://www.nosite.com/paeges/1 (должно быть/pages/). Как сделать так, чтобы они перенаправлялись на 404, а не на экран исключения?

ответ

6

Посмотрите на this page для маршрутизации 404 ошибок на указанную страницу.

+2

Вы можете обновить ответ, чтобы включить соответствующие данные в нем. – jgauffin 2016-05-17 05:03:44

16

Просто используйте маршрут:

// We couldn't find a route to handle the request. Show the 404 page. 
routes.MapRoute("Error", "{*url}", 
    new { controller = "Error", action = "404" } 
); 

Поскольку это будет глобальный обработчик, положить его на всем пути в нижней части по умолчанию маршрута.

+6

Правильно ли это? Поскольку я уверен, что если я определяю маршрут для {controller}/{action}/{id}, скажем, и пользователь вводит url с контроллером, который не существует, тогда он будет желтым, так как этот первый маршрут будет соответствовать, и ваш поймать все никогда не будет достигнуто? – jmcd 2008-10-22 19:48:03

+0

Я просто попробовал это и все еще получаю желтый экран 404. – 2011-12-15 21:03:17

 Смежные вопросы

  • Нет связанных вопросов^_^