как я бросаю 404 или исключение/результат FileNotFound мое действие и позволяю IIS использовать мой раздел конфигурации customErrors для показа 404 страниц?
Я определил свой customErrors как так
<customErrors mode="On" defaultRedirect="/trouble">
<error statusCode="404" redirect="/notfound" />
</customErrors>
Моя первая попытка actionResult, который пытается добавить это, не работает.
public class NotFoundResult : ActionResult {
public NotFoundResult() {
}
public override void ExecuteResult(ControllerContext context) {
context.HttpContext.Response.TrySkipIisCustomErrors = false;
context.HttpContext.Response.StatusCode = 404;
}
}
Но это просто показывает пустой странице и не моему/not-found страница
:(
Что я должен сделать?
ASP.NET MVC 3 представила результат действия HttpNotFoundResult, который следует использовать вместо ручного бросания исключения с кодом состояния http. Это также может быть возвращено с помощью метода Controller.HttpNotFound на контроллере:
public ActionResult MyControllerAction()
{
...
if (someNotFoundCondition)
{
return HttpNotFound();
}
}
До MVC 3 нужно было сделать следующее:
throw new HttpException(404, "HTTP/1.1 404 Not Found");