9
votes

I'm trying to return a 404 status code with my custom error page. However I keep getting 200 back, since the page does actual exists as far as the browser and server can tell.

What I have been trying so far is:

<customErrors mode="On" defaultRedirect="~/404" >
    <error statusCode="404" redirect="~/404"/>
</customErrors>

Where 404 is a route to the "page not found" controller and action.

I have also tried to set the statuscode with in my action..

public ActionResult PageNotFound(string locale)
{
    Response.StatusCode = 404;
    return View();
}

But that simply ends up with displaying the default Server error page (the gray-ish one with the red error message text)

Any ideas of how to get around this?

2
It looks like your question may already have an answer here: stackoverflow.com/questions/5635114/…Vivian River

2 Answers

11
votes

I had the same problem and the solution is posted here:

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