so nach längerer Zeit wieder mal ein Beitrag.
Wer Projekte mit dem MVC-Framework umsetzt, der wird nicht um den Sessionstate herum kommen. Dabei gibt es viele Möglichkeiten auf diesen zuzugreifen, zB normal über den Sessionstate in den Controllermethoden. Ich möchte euch zeigen, wie man einen eigenen ModelBinder verwenden kann, um den Sessionstate zu verwenden. Vorteil ist, dass man die Actionmethoden wie gewohnt benutzt, und die gewünschten Informationen als Parameter übergibt. Man muss also nicht immer selbst auf die Sessionvariable zugreifen.
Also als erstes erstellt man eben eine Klasse, die man in der Session speichern möchte:
Danach erstelle ich mir immer gern eine Hilfsmethode, um typsicher auf die Session zuzugreifen:
Der Zugriff würde nun so aussehen:
Da wir aber nicht in jeder ActionMethode diese Zeile schreiben möchten, und stattdessen das Parametersystem nutzen wollen, erstellen wir uns einen eigenen ModelBinder. Dazu implementieren wir das IModelBinder-Interface, aus dem Namespace System.Web.Mvc.
Wie ihr seht, nutzt dieser auch unsere Extensionmethode um die Daten aus der Session zu holen.
Als nächstes müssen wir diesen ModelBinder registrieren, damit die Runtime weiss, wann sie diesen verwenden muss.
So, nun können wir unsere ActionMethode refaktorisieren, damit die SessionData als Parameter übergeben wird:
Fertig :)
Der Vorteil ist nun, dass man jeder Methode, welche die SessionDatas benötigt einfach einen Parameter mitgeben muss, und der Rest wird durch die Laufzeit erledigt :)
Ich hoffe ich konnte euch wieder ein bisschen helfen, bis zum nächsten mal =)
mfg
Sebastian






Keine Kommentare:
Kommentar veröffentlichen