[英]How to save session values of shopping cart in database using asp.net + MVC
[英]Shopping cart session state done right in ASP.NET MVC
我正在為ASP.NET MVC中未經身份驗證的用戶實現一個簡單的會話購物車,我想要做得對。
在過去,我總是將購物車ID存儲在持久的Session["CartID"]
商店中並作為cookie存儲。 每當我需要顯示購物CartItems
,我都會從Carts
和CartItems
表中查找用戶的購物車商品。 但在內部我知道更強烈的方法會更清潔。
在谷歌搜索最新的會話MVC之后,我找到了術語HttpSessionStateWrapper
,這似乎是處理會話的可測試方式。 但我沒有找到任何好的教程或標准化的實現。 也許這只是一個嗡嗡聲,我應該堅持Session["..."]
。
在最新版本的ASP.NET MVC中使用會話實現購物車的正確方法是什么?
Steve Sanderson在他的書Pro ASP.NET MVC 2 Framework中給出了一個很好的例子,說明了如何使用ASP.NET MVC中的會話實現購物車。 如果你沒有這本書,你可以在這里閱讀。 這是一個非常巧妙的方法。 我們的想法是創建一個模型綁定器,從會話中獲取購物車。 使用購物車的操作將通過模型綁定器“注入”購物車。 在測試這些方法時,您的測試應負責將購物車傳遞給操作。
MVC使用名為HttpContextBase的HttpContext類的可測試和可模擬的抽象。 您根本不需要包裝器,仍然可以對控制器進行模擬和單元測試。
我在google上找到的第一個例子: http : //weblogs.asp.net/andrewrea/archive/2009/08/10/mocking-the-session-object-with-moq-inside-asp-net-mvc-and-having -a清潔建設者法換會話值,在最controller.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.