HandleErrorInfo mit MVC2 - Modell ist null?

Ich habe eine MVC 2-Webanwendung, die kurz vor der Veröffentlichung steht. Bisher hatte ich benutzerdefinierte Fehler deaktiviert, aber ich möchte, dass sie funktionieren, wenn ich produktionsbereit bin.

Ich habe meine web.config folgendermaßen eingerichtet:

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

Die 404-Version funktioniert einwandfrei, und NotFound ist eine Aktion, die direkt einer Ansicht zugeordnet wird, in der nur eine hübsche Standard-404-Seite mit meiner eigenen Site.Master-Datei angezeigt wird.

Ich möchte, dass ein Benutzer die Ausnahmedetails für andere Elemente als 404 anzeigen kann. (Dies ist eine interne Anwendung, und dabei besteht kein Sicherheitsrisiko.)

DasError StandardaktionIndex wird gesetzt, um eine von mir definierte View () zurückzugeben. Was ich nicht herausfinden kann, ist, wie die Ausnahmeinformationen an die Ansicht übergeben werden?

Das sah vielversprechend aus:

http://devstuffs.wordpress.com/2010/12/12/how-to-use-customerrors-in-asp-net-mvc-2/

Aber wenn ich die Ansicht benutze mit:

<%@ Page Title="" Language="C#" 
    MasterPageFile="~/Views/Shared/Bootstrap.Master"
    Inherits="System.Web.Mvc.ViewPage<System.Web.Mvc.HandleErrorInfo>" %>

Die Fehlerseite selbst löst einen Fehler aus, da HandleErrorInfo null ist. Offensichtlich verursacht ein Fehler im benutzerdefinierten Fehler in MVC2 eine ganze Reihe von Problemen, und das Ergebnis ist ein gelber Todesbildschirm.

Entweder habe ich einen Schlüssel im Blog verpasst, oder es wird nicht erklärt, wie HandleErrorInfo auf einen anderen Wert als null gesetzt werden kann, ohne das Error-Attribut für jeden einzelnen meiner Controller / Aktionen festzulegen.

Ich bin mir auch bewusst, dass MVC3 besser damit umgeht, und ich bin mir bewusst, dass Razor sehr gut ist. Es wurde weder für dieses Projekt verwendet, noch wird dieses Projekt geändert, um es zu verwenden. Also bitte keine "Use MVC3" Antworten.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage