Обрабатывать недопустимый 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 с обработчиком исключений.

каков ваш серверный язык ?