Мой проект в MVC 5. я хотел обработать 404. я сделал это, но проблема в том, что
Когда я получаю доступ к представлению, используя следующий URL-адрес, все работает нормально и, как и ожидалось:
http://localhost/Hotels/Index30701000000
Но когда я получаю доступ к представлению, используя следующий URL-адрес, я получаю сообщение об ошибке 404.0 (ошибка показана ниже)
http://localhost/Hotels/Edit/09099999dfdfb
http://localhost/Hotels/Edit/090/20130701000000
Ошибка: Ошибка HTTP 404.0 — не найден Ресурс, который вы ищете, был удален, его имя было изменено или он временно недоступен.
Мой код
Контроллер
public class ErrorController : Controller
{
// GET: Error
public ActionResult Unauthorized()
{
Response.StatusCode = 404;
Response.TrySkipIisCustomErrors = true;
return View();
}
}
Конфигурация маршрута
routes.MapRoute(
name: "Unauthorized",
url: "Unauthorized/{action}/{id}",
defaults: new
{
controller = "Error",
action = "Unauthorized",
id = UrlParameter.Optional
}
);
Global.asax
protected void Application_Error()
{
Exception exception = Server.GetLastError();
HttpException httpException = exception as HttpException;
}
веб-конфиг
<system.web>
<customErrors mode="On" defaultRedirect="Error">
<error statusCode="404" redirect="Unauthorized" />
</customErrors>
</system.web>
Просмотр //Unauthorized.cshtml
@model System.Web.Mvc.HandleErrorInfo
@{
ViewBag.Title = "Unauthorized";
}
<h1>Page Not Found!</h1>
C#
, но почему бы вам не изменить настройки сервера, чтобы он перенаправлял каждый404
на вашу пользовательскую страницу? - person GuyT   schedule 19.11.2014