Обработка неверного URL в MVC - PullRequest
7 голосов
/ 24 мая 2009

Как обрабатывать недействительные URL в MVC?

Например: когда пользователь вводит http://localhost/User/MyProfile вместо http://localhost/User/Profile, будет выдано исключение.

Как обработать этот запрос?

Ответы [ 3 ]

12 голосов
/ 24 мая 2009

Сначала необходимо добавить пользовательский 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" />  
1 голос
/ 24 мая 2009

Вы имели в виду это?

// Show a 404 error page for anything else.
    routes.MapRoute("Error", "{*url}",
    new { controller = "Error", action = "404" }
);
0 голосов
/ 24 мая 2009

Я думаю, что каждый запрос должен перенаправляться на фронт-контроллер, поэтому поместите ваш код в блок try / catch, который будет перехватывать исключение, и, возможно, вы можете перенаправить на домашнюю страницу в блоке catch или просто вызвать ошибку 404 обработчик исключений.

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

...