404 page not found error for an ASP.NET MVC application

Total Post:41

Mvc4  Error 
 1248  View(s)
Rate this:
Hi Guys

This must be simple and already answered, but I've wasted many hours on it. I can't figure how to get an error page on mistyped address. Also I'd prefer not to redirect, but to keep the URL. I've tried many combinations of CustomErrors, HttpErrors and Application_Error, but nothing works for non-existent controller - depending on HttpErrors I always get IIS 404.0 page or just an empty 404 response. Running on IIS 7.5, MVC 3.
  1. Post:30

    Re: 404 page not found error for an ASP.NET MVC application

    I don't remember where I got the solution. But here is the code to handle the error: First, you create a ErrorController:

    public class ErrorController : Controller
        // GET: /Error/
        public ActionResult Index()
            return RedirectToAction("Index", "Home");
        public ActionResult Generic()
            Exception ex = null;
                ex = (Exception)HttpContext.Application[Request.UserHostAddress.ToString()];
            catch { }
            return View();
        public ActionResult Error404()
            return View();

    Second, open Global file and add the following code:

    protected void Application_Error(object sender, EventArgs e)
         Exception ex = Server.GetLastError();
         Application[HttpContext.Current.Request.UserHostAddress.ToString()] = ex;

    Third, change customerror in your webconfig:

    <customErrors mode="Off" defaultRedirect="/Error/Generic">
      <error statusCode="404" redirect="/Error/Error404"/>

    More: I created one more error layout. It makes things even more clear. :) 

      Modified On Apr-06-2018 05:16:19 AM