Я использую RC2
Использование маршрутизации URL:
routes.MapRoute(
"Error",
"{*url}",
new { controller = "Errors", action = "NotFound" } // 404s
);
Вышеизложенное, похоже, позаботится о таких запросах (при условии, что установка таблицы маршрутов по умолчанию начинается с первоначального проекта MVC): "/blah/blah/blah/blah"
Переопределение HandleUnknownAction() в самом контроллере:
// 404s - handle here (bad action requested
protected override void HandleUnknownAction(string actionName) {
ViewData["actionName"] = actionName;
View("NotFound").ExecuteResult(this.ControllerContext);
}
Однако предыдущие стратегии не обрабатывают запрос к контроллеру Bad/Unknown. Например, у меня нет "/IDoNotExist", если я прошу об этом, я получаю общую страницу 404 с веб-сервера, а не мой 404, если я использую routing + override.
Итак, наконец, мой вопрос: есть ли способ поймать этот тип запроса, используя маршрут или что-то еще в самой структуре MVC?
ИЛИ должен ли я просто по умолчанию использовать Web.Config customErrors в качестве моего обработчика 404 и забыть все это? Я предполагаю, что если я пойду с customErrors, мне придется хранить общую страницу 404 за пределами /Views из-за ограничений Web.Config на прямой доступ.