Возвращаете пользовательскую страницу 404 с кодом статуса 404 в MVC?
Я пытаюсь вернуть код состояния 404 со своей пользовательской страницей ошибок. Однако я продолжаю получать 200 обратно, так как страница действительно существует, насколько браузер и сервер могут сказать.
То, что я пытался до сих пор, это:
<customErrors mode="On" defaultRedirect="~/404" >
<error statusCode="404" redirect="~/404"/>
</customErrors>
Где 404 - это маршрут к контроллеру "страница не найдена" и действию.
Я также попытался установить код состояния с помощью моего действия..
public ActionResult PageNotFound(string locale)
{
Response.StatusCode = 404;
return View();
}
Но это просто заканчивается отображением страницы ошибки сервера по умолчанию (серого цвета с красным текстом сообщения об ошибке)
Есть идеи как обойти это?
2 ответа
У меня была такая же проблема, и решение выложено здесь:
public ActionResult NotFound()
{
Response.StatusCode = 404;
Response.TrySkipIisCustomErrors = true; <---
return View();
}
Ты пытался:
return HttpNotFound();
Вы можете найти больше информации здесь:
https://msdn.microsoft.com/en-us/library/system.web.mvc.controller.httpnotfound%28v=vs.118%29.aspx