在MVC中返回带有404状态代码的自定义404页面?

时间:2014-06-09 09:38:56

标签: c# asp.net-mvc http-status-code-404 custom-error-pages

我正在尝试使用自定义错误页面返回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 个答案:

答案 0 :(得分:8)

我遇到了同样的问题,解决方案已发布here

public ActionResult NotFound()
{
    Response.StatusCode = 404; 
    Response.TrySkipIisCustomErrors = true; <---
    return View();
}

答案 1 :(得分:0)

你试过了吗?

return HttpNotFound();

您可以在此处找到更多信息:

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