Возвращаете пользовательскую страницу 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

Другие вопросы по тегам