4 Stimmen

ASP.NET MVC - Deklarative Umleitung bei Fehler

Ich habe Ausnahmen erfasst und die Benutzer auf eine Fehlerseite umgeleitet. Ich übergebe die Ausnahmemeldung und eine Rückgabe-URL, um dem Benutzer mitzuteilen, was passiert ist, und ihm zu ermöglichen, eine andere Seite aufzurufen.

        try
        {
            return action(parameters);
        }
        catch (Exception exception)
        {
            ErrorViewModel errorModel = new ErrorViewModel();
            errorModel.ErrorMessage = "An error occured while doing something.";
            errorModel.ErrorDetails = exception.Message;
            errorModel.ReturnUrl = Url.Action("Controller", "Action");
            return RedirectToAction("Index", "Error", errorModel);
        }

Dies scheint wie Weg zu viel Code, um jede Aktion zu umgehen. Ich verwende einen globalen Filter für Fehler:

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

und ich habe meine web.config wie folgt eingerichtet:

<customErrors mode="On" defaultRedirect="~/Error/Unknown">

Dies funktioniert jedoch nur bei unbehandelten Ausnahmen.

Ich möchte, dass Ausnahmen eine Umleitung zu einem Fehler-Controller/einer Aktion mit einem Parameter, der die Ausnahmedetails enthält, verursachen. Es wäre schön, wenn ich die Rückgabe-URL auf einer Aktion-zu-Aktion-Basis angeben könnte, oder einen Standard zu haben, wenn keine bereitgestellt wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X