Обработка неверного 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 с помощью обработчика исключений,

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

Другие вопросы по тегам