9

ASP.NET MVC で認証されていないユーザー用の単純なセッション カートを実装していますが、正しく実行したいと考えています。

以前は、カート ID を常に永続Session["CartID"]ストアに Cookie として保存していました。Cartsカートを表示する必要があるときはいつでも、 my テーブルとテーブルからユーザーのカート項目を検索しますCartItems。しかし、内部では、より強く型付けされたアプローチがよりクリーンになることを知っています。

最新のセッション MVC についてグーグルで検索した後、HttpSessionStateWrapperセッションを処理するためのテスト可能な方法のように思われる という用語を見つけました。しかし、良いチュートリアルや標準化された実装は見つかりませんでした。多分それは単なる流行語であり、私は固執する必要がありますSession["..."].

ASP.NET MVC の最新バージョンでセッションを使用してショッピング カートを実装する正しい方法は何ですか?

4

2 に答える 2

4

Steve Sandersonは、著書Pro ASP.NET MVC 2 Frameworkで、ASP.NETMVCでセッションを使用してショッピングカートを実装する方法の良い例を示しています。あなたがその本を持っていないなら、あなたはここを読んでアイデアを得ることができます。それは非常にきちんとしたアプローチです。アイデアは、セッションからショッピングカートを取得するモデルバインダーを作成することです。ショッピングカートを使用するアクションは、モデルバインダーによってカートを「注入」します。これらのメソッドをテストするときは、テストでショッピングカートをアクションに渡す必要があります。

于 2010-11-22T19:05:33.160 に答える
0

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-clean-builder-method-for-session-values-in-the-controller.aspx

于 2010-11-22T18:48:03.990 に答える