Обработка неверного URL в MVC
Как обрабатывать недействительные URL в MVC?
Например: когда пользователь вводит http://localhost/User/MyProfile вместо http://localhost/User/Profile, он создает исключение.
Как обработать этот запрос?
3 ответа
Сначала необходимо добавить пользовательский URL-адрес страницы ошибки в файле web.config:
<customErrors mode="On" defaultRedirect="~/Error/404" />
И добавьте контроллер для обработки недействительных URL:
public class ErrorController:Controller
{
[ActionName("404")]
public ActionResult Error404()
{
return View("Error");
}
}
И если вы хотите перенаправить пользователя на домашнюю страницу, вам не нужен контроллер ошибок, просто измените пользовательский тег ошибки:
<customErrors mode="On" defaultRedirect="~/Home/Index" />
Вы имели в виду это?
// Show a 404 error page for anything else.
routes.MapRoute("Error", "{*url}",
new { controller = "Error", action = "404" }
);
Я думаю, что каждый запрос должен быть перенаправлен на фронт-контроллер, поэтому поместите ваш код в блок try / catch, который будет перехватывать исключение, и, возможно, вы можете перенаправить на домашнюю страницу в блоке catch или просто вызвать ошибку 404 с помощью обработчика исключений,
Какой ваш сервер язык?