2009-04-03 11 views
0

Ich bin heute Morgen mit HandleError in eine kleine Straßensperre gerannt. Benutzer werden ordnungsgemäß auf die /Views/Shared/Error.aspx verwiesen. Diese Ansicht verwendet eine Masterseite, die ebenfalls gut angezeigt wird. Es protokolliert außerdem die Details der ViewData.Model.Exception in der Methode Page Load. Eine akzeptable Verwendung von Codebehind meiner Meinung nach.HandleError mit stark typisierter Teilansicht

Mein Problem ist das: Die Seite enthält eine stark typisierte Teilansicht, die einige der Eingabedaten des Benutzers enthält. Ich möchte den Zugriff auf diese Daten auch nach dem Auftreten der Ausnahme behalten - so wird der Benutzer nicht doppelt bestraft für unsere Ausnahme (mit einer Fehlermeldung versehen UND ihre Formularwerte verlieren).

Gibt es eine Möglichkeit, dies mit HandleError oder einem anderen wiederverwendbaren Attribut zu erreichen?

Antwort

0

Die einfachste Lösung ist die Back-Taste sein würde, und es braucht keinen Code :-)

Wenn Sie eine Notwendigkeit Code-basierte Lösung, ich denke, Sie müssen Ihre Formulardaten beibehalten, bevor der Benutzer auf Error.aspx landen. An diesem Punkt ist eine Umleitung passiert und alle Anfragedaten sind verloren gegangen. Wenn der Benutzer dann zur fehlerhaften Ansicht navigiert, stellen Sie das Formular aus den beibehaltenen Werten wieder her.

Error.aspx ist eine allgemeine Fehlerseite und Ihr letzter Ausweg. Diese Seite sollte nicht einmal versuchen, irgendeine Aufgabe zu lösen, die über die allgemeine Fehlerbehandlung hinausgeht.

0

Die Art und Weise, wie ich dieses Problem umgehen kann, ist Ajax.BeginForm(){} zu verwenden und Render das Benutzersteuerelement auf diese Weise Ihre Ansicht wird nicht aktualisiert und Ihre Eingabe ist nicht verloren. Wenn Ihre Fehlermeldungen streng Eingangs Einschränkungen sind, dann können Sie auch jquery.validate.js-Datei verwenden, können hier gefunden werden http://randomactsofcoding.blogspot.com/2008/09/starting-with-jquery-validation-plug-in.html

+0

Dies sind keine Validierungsausnahmen, sie sind tatsächliche Anwendungsausnahmen, die in meinen Modellen oder anderswo behandelt wurden (wie ein SQL-Fehler), aber auf die Seite gesprudelt sind, so dass der Benutzer einen Fehler bemerkt. –

Verwandte Themen