9

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?

Flat Eric
  • 7,971
  • 9
  • 36
  • 45
Inx51
  • 1,911
  • 3
  • 24
  • 44
  • It looks like your question may already have an answer here: http://stackoverflow.com/questions/5635114/returning-404-error-asp-net-mvc-3 – Vivian River Jun 09 '14 at 15:14

2 Answers2

11

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

public ActionResult NotFound()
{
    Response.StatusCode = 404; 
    Response.TrySkipIisCustomErrors = true; <---
    return View();
}
Community
  • 1
  • 1
Maksim Vi.
  • 9,107
  • 12
  • 59
  • 85
0

Have you tried:

return HttpNotFound();

You can find more information here:

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

jobmo
  • 835
  • 1
  • 9
  • 19