喜帳面の日記

50歳越えおやじのASP.NET MVC への挑戦日記です。

ASP.Netでいってみる MVC2 その4

ひと目でわかるASP.NET MVCアプリケーション開発入門
第10章 ショッピングカート機能
3 商品をカートに入れる
ここで
Controllerのメソッドにつける[Authorize]属性については
「呼び出し元をアクションメソッドのみに制限する。こうすることでログインしたユーザーの操作でのみ可能なメソッドが定義できます。」
この説明だけでは満足できない方、
この本の筆者が、以下のURLにより詳細な内容が記述されています。こちらで疑問は解決できると思います。
 
第11章 ショッピングカート機能(CRUD
1 カートから商品を削除する(コントロール)
セッション内のコレクションからレコードを削除...model.Items.Remove(item)
 
2 商品の購入数を変更する(コントロール)
セッション内のカート情報のレコードを編集
LINQを使ってコレクション内のレコードを編集する。
なるほど、LINQってこんなケースでも使えるんだ。便利だね。
 
3 カートが空の場合
メッセージの表示と合計金額の表示。特にはまらず。
以上で11章終了。
 
ふと、10章のカートのビューで、数量を変更した後の「更新」はボタンだが、「キャンセル」はリンクになっている。この「キャンセル」の機能はリンクで戻るでいいんだけど、「見た目」をボタン風にするにはどうすればいいんだろう?の疑問が湧いた。で、いろいろやってみるが結局「ボタン(風)」にする方法を発見できず。。。後日に先送りとなりました。
 
第12章 管理モードを作る
 
2 ユーザー名で区分する
で、「はまり」というか単純ミス発生。
商品管理用のビューを作成する際のビューコンテンツの指定で「List」を指定し忘れ「Empty」のまま進めてしまった。
後でわかったことだが、ビューコンテンツで{Create,Delete..Empty.List.}とかの指定はスクリプトのテンプレートを指定するってこと。
ここでちゃんと「List」を指定しておけば自動的にListのソースが用意される。それを知らなかったもんで、一生懸命スクリプトをパンチしてしまったぜ。。。
結局、スクリプトの先頭のおまじない、Inherits=のところで「 IEnumerable」が抜けていることに気づいて追加するも、コントロール側のミスもあってうまく動かず、ビューを削除後追加し直してみて「おお、スクリプト出来上がってるじゃん」という顛末でした。
ま、いろいろ勉強になりました。失敗しないと成長しないしね。