簡體   English   中英

購物車會話狀態在ASP.NET MVC中完成

[英]Shopping cart session state done right in ASP.NET MVC

我正在為ASP.NET MVC中未經身份驗證的用戶實現一個簡單的會話購物車,我想要做得對。

在過去,我總是將購物車ID存儲在持久的Session["CartID"]商店中並作為cookie存儲。 每當我需要顯示購物CartItems ,我都會從CartsCartItems表中查找用戶的購物車商品。 但在內部我知道更強烈的方法會更清潔。

在谷歌搜索最新的會話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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM