Как я могу перенаправить на «страница не найдена» с MVC3? - PullRequest
1 голос
/ 30 июля 2011

У меня есть несколько ссылок в Google, которые я больше не ожидаю. Все ссылки выглядят так:

www.abc.com/xx/que=xxxxxxxxxxx

Где х может быть чем угодно.

Может кто-нибудь сказать мне, как я могу настроить маршрут и действие контроллера, которое вернет Google 404? Я думаю, мне нужно установить маску с надписью «que», но я не совсем уверен, как это сделать.

1 Ответ

2 голосов
/ 30 июля 2011

Добавьте новый маршрут к вершине вашего global.asax. Это будет перехватывать запросы вида xx/que={anything}, используя регулярное выражение для определения аргумента "que".

routes.MapRoute(
    "PageNotFound", 
    "xx/{que}",
    new { controller = "Error", action = "NotFound" },
    new { que = "que=.*" });

Это также предполагает, что у вас есть ErrorController с действием NotFound и соответствующим представлением с именем NotFound.aspx в каталоге / Views / Error /.

public class ErrorController : Controller
{
    public ActionResult NotFound()
    {
        Response.StatusCode = 404;
        return View();
    }
}
...