Обрабатывать недопустимый URL-адрес в MVC
Как обрабатывать недопустимые URL-адреса в MVC?
для ex.: Когда пользователь вводит http://localhost/User/MyProfile вместо http://localhost/User/Profile, это вызовет исключение.
Как обработать этот запрос?
3 ответов
сначала необходимо добавить url-адрес страницы пользовательских ошибок в интернете.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 с обработчиком исключений.
каков ваш серверный язык ?