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?
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.
Tags und Links asp.net-mvc c# session shopping-cart strong-typing