Возврат настраиваемой страницы 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();
}

Но это просто заканчивается отображением страницы ошибки сервера по умолчанию (серой с красным текстом сообщения об ошибке)

Есть идеи, как это обойти?


person Inx51    schedule 09.06.2014    source источник
comment
Похоже, на ваш вопрос уже есть ответ здесь: stackoverflow.com/questions/5635114/   -  person Vivian River    schedule 09.06.2014


Ответы (2)


У меня была такая же проблема, и решение опубликовано здесь:

public ActionResult NotFound()
{
    Response.StatusCode = 404; 
    Response.TrySkipIisCustomErrors = true; <---
    return View();
}
person Maksim Vi.    schedule 08.04.2015

Ты пытался:

return HttpNotFound();

Вы можете найти более подробную информацию здесь:

https://msdn.microsoft.com/en-us/library/system.web.mvc.controller.httpnotfound%28v=vs.118%29.aspx

person jobmo    schedule 10.02.2015