Redirect to shared Error view von Global.asax auf nicht behandelte MVC-Ausnahme
Ich habe die verschiedenen Methoden zur Fehlerbehandlung in ASP.MVC gelesen. Ich weiss Bescheidtry/catch
innerhalb eines Controllers, und auch über[HandleError]
auf Controller-Ebene.
ch versuche jedoch, eine globale Fehlerbehandlung für unbehandelte Ausnahmen durchzuführen, die auftreten könneirgendw in der Anwendung (daswow - das hätten wir nie von einem User erwartet! Art der Sache). Das Ergebnis ist, dass eine E-Mail an dev's gesendet wird:
Dies funktioniert gut:
protected void Application_Error()
{
Exception last_ex = Server.GetLastError();
Server.ClearError();
// send email here...
Response.Redirect("/Login/Login");
}
Sollte irgendwo in der Anwendung ein Fehler in einer Steuerung auftreten, haben wir diese Logik, die in unserer Fehleransicht einen freundlichen Fehler liefert:
Error Model
namespace My.Models
{
public class ErrorViewModel
{
public string Summary { get; set; }
public string Description { get; set; }
}
}
Controller Code
if(somethingBad){
return View("Error", new ErrorViewModel { Summary = "Summary here", Description = "Detail here" });
}
Meine Frage ist, ist es möglich, zur Fehleransicht über das @ umzuleitErrorViewModel
aus Global.asax, z. B.
// send email here...
Response.MethodToGetToView(new ErrorViewModel { Summary = "Error", Description = ex.Message });