Der Einkaufswagensitzungsstatus wurde in ASP.NET MVC erstellt

9

Ich implementiere einen einfachen Session-Warenkorb für nicht authentifizierte Benutzer in ASP.NET MVC und ich möchte es richtig machen.

In der Vergangenheit habe ich die Warenkorb-ID immer im persistenten Session["CartID"] Store und als Cookie gespeichert. Wann immer ich den Einkaufswagen anzeigen muss, werde ich die Einkaufswagen-Artikel des Benutzers aus meinen Tabellen Carts und CartItems nachschlagen. Aber im Inneren weiß ich, dass ein stärker typisierter Ansatz sauberer wäre.

Nach dem googlen für den MVC-Kram der letzten Sitzung habe ich den Begriff HttpSessionStateWrapper gefunden, der eine überprüfbare Methode für den Umgang mit Sitzungen zu sein scheint. Aber ich habe keine guten Tutorials oder standardisierte Implementierungen gefunden. Vielleicht ist es nur ein Schlagwort und ich sollte bei Session["..."] bleiben.

Was ist der richtige Weg, um einen Einkaufswagen mithilfe von Sitzungen in der neuesten Version von ASP.NET MVC zu implementieren?

    
Petrus Theron 22.11.2010, 18:31
quelle

2 Antworten

4

Steve Sanderson, in seinem Buch Pro ASP.NET MVC 2 Framework, gibt ein schönes Beispiel für die Implementierung eines Einkaufswagens mit einer Sitzung in ASP.NET MVC. Wenn Sie das Buch nicht haben, können Sie eine Idee lesen hier . Es ist ein sehr gepflegter Ansatz. Die Idee besteht darin, einen Modellordner zu erstellen, der den Einkaufswagen aus der Sitzung nimmt. Die Aktionen, die den Warenkorb verwenden, erhalten den Einkaufswagen vom Modellbinder "injiziert". Wenn Sie diese Methoden testen, sollten Ihre Tests dafür verantwortlich sein, den Einkaufswagen an die Aktion zu übergeben.

    
uvita 22.11.2010, 19:05
quelle
0

MVC verwendet eine testbare und anschauliche Abstraktion der HttpContext-Klasse namens HttpContextBase. Sie brauchen den Wrapper überhaupt nicht und können Ihre Controller immer noch gut durchspielen und testen.

Erstes Beispiel, das ich bei Google gefunden habe: Ссылка

    
jfar 22.11.2010 18:48
quelle