ASP.NET MVC-5 - (HTTP-Fehler 404.0 - Nicht Gefunden) mit lange nicht existierende URL

Erstellte ich ein neues Projekt in Microsoft Visual Studio Express 2013 für das Web.
Es ist ein ASP.NET MVC-5 - .NET Framework 4.5-Projekt.

Wollte ich handle (Die Ressource kann nicht gefunden werden):

ASP.NET MVC-5 - (HTTP-Fehler 404.0 - Nicht Gefunden) mit lange nicht existierende URL

Ich Tat, Griff es mit dem code unten.

Dieser code funktioniert, wenn ich so etwas mache (/Home/kddiede/ddiij) oder (/djdied/djie/djs), dies wird im Ergebnis zeigt meine benutzerdefinierte Fehlerseite.

Jedoch, wenn ich versuche, etwas zu tun (/Home/kddiede/ddiij/dfd/sdfds/dsf/dsfds/fd) oder eine lange, nicht-existierende URL, Es zeigt mir das:

ASP.NET MVC-5 - (HTTP-Fehler 404.0 - Nicht Gefunden) mit lange nicht existierende URL

Code aus: http://www.codeproject.com/Articles/635324/Another-set-of-ASP-NET-MVC-4-tips

Tipp 16: Customizing-Fehler-Bildschirme

Fehler-Seite ist in der /View/Shared/Error.cshtml

Web.config

<system.web>
<customErrors mode="RemoteOnly" />
</system.web>

Global.asax

protected void Application_EndRequest(Object sender, EventArgs e)
{
    ErrorConfig.Handle(Context);
}

ErrorConfig Klasse

public class ErrorConfig
{
  public static void Handle(HttpContext context)
  {
    switch (context.Response.StatusCode)
    {
      //Not authorized
      case 401:
        Show(context, 401);
        break;

      //Not found
      case 404:
        Show(context, 404);
        break;
    }
  }

  static void Show(HttpContext context, Int32 code)
  {
    context.Response.Clear();

    var w = new HttpContextWrapper(context);
    var c = new ErrorController() as IController;
    var rd = new RouteData();

    rd.Values["controller"] = "Error";
    rd.Values["action"] = "Index";
    rd.Values["id"] = code.ToString();

    c.Execute(new RequestContext(w, rd));   
  }
}

ErrorController

internal class ErrorController : Controller
{
  [HttpGet]
  public ViewResult Index(Int32? id)
  {
    var statusCode = id.HasValue ? id.Value : 500;
    var error = new HandleErrorInfo(new Exception("An exception with error " + statusCode + " occurred!"), "Error", "Index");
    return View("Error", error);
  }
}

Diesem letzten Stück code von der website, die ich oben erwähnt wurde, nicht Hinzugefügt, die in Global.asax, da Es bereits in FilterConfig.cs

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
  filters.Add(new HandleErrorAttribute());
}

Jemand weiß wie es zu lösen ist?

Vielen Dank im Voraus.

InformationsquelleAutor NewUser_ | 2013-12-04
Schreibe einen Kommentar