喜帳面の日記

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

ASP.Netでいってみる RazorとWeb ページに チャレンジ 5

msdnのASP.NET 開発者向け技術情報からこんなページを発見しました。

『Razor 構文と ASP.NET Web ページ』

http://msdn.microsoft.com/ja-jp/asp.net/gg193039

『Razor構文』の勉強に行ってきます。

その4です。

これであなたも Web 開発者の仲間入り 無償で始めるカンタン Web 開発入門 Microsoft WebMatrix 詳しくはこちら

f:id:SannomiyaNotes:20120822070819g:plain

第5章 データを扱う P75

第6章 データをグリッドで表示する P95

f:id:SannomiyaNotes:20120822070819g:plain

 

この2章についてはMVCで扱った方が楽できるのではないかなと思う今日この頃です。

 

諸般の事情により今はMVCを優先したいので この2章については、教科書はパスします。時間ができたら、WebMatrixでチャレンジしたいと思います。

この先にある

第7章 データをグラフで表示する

まではやってみたいので、SQLServer Management Studio 使って、データベース[SmallBakery]、テーブル[Product]は用意しておきます。

Entity Frameworkのコード・ファーストでのモデル開発にはなじみが薄いDOA世代なので、データベースやテーブルはSQLServer Management Studioで先に用意しました。MVC4でこの2章をスキャフォールディング(Scaffolding)と呼ばれる機能とか使うと楽ちんできるところをメモしときます。

参考にしたページは主に以下の2つです。

「Entity Data Model ウィザード を使用して新しい .edmx ファイルを作成する」

 

ASP.NET MVC 4 を使った Mobile Web ソリューション実装
 ※この資料とても参考になりました。
 
では、「ASP.NET MVC 4 を使った Mobile Web ソリューション実装」に基づきいってみます。
 
1.Model の追加
ソリューション エクスプローラー上の Model のフォルダーを右クリックして、Model の追加を行います。追加→新しい項目を選択します。

 

f:id:SannomiyaNotes:20120827170725p:plain

新しい項目の追加ダイアログが出るので、データ タブを選択し、ADO.NET Entity Data Model を選択します。

f:id:SannomiyaNotes:20120827170827p:plain

ウィザードが起動するので、最初に、データベースから作成、を選択して次へをクリックします。

f:id:SannomiyaNotes:20120827170850p:plain

次に、データ接続の選択、で、新しい接続を指定。(新しくデータ接続をつくる場合)

f:id:SannomiyaNotes:20120827171020p:plain

接続のプロパティを登録して[OK」

f:id:SannomiyaNotes:20120827170916p:plain

f:id:SannomiyaNotes:20120827171536p:plain

エンティティ名がデフォルトセットされます。

[次]へ

そして、テーブルの左のチェック ボックスにチェックを入れて使用する全てのテーブルを選んで、完了をクリックします

f:id:SannomiyaNotes:20120827171726p:plain

すると、必要なライブラリが読み込まれて、同時に アプリケーションの Model が生成されます。この状態で必ず Ctrl+Shift + B で忘れずにビルドをしておきましょう。そうしないと次のコントローラーの追加のダイアログ ボックスの画面で、Class のリスト内に必要なモデルが表示されません。

f:id:SannomiyaNotes:20120827171953p:plain

 

2.コントローラーとビューの作成

次いで、ソリューション エクスプローラー上で、Controller のフォルダーを右クリックして、新規コントローラー追加します。

f:id:SannomiyaNotes:20120827172341p:plain

コントローラーの追加ダイアログ ボックスが出るので、コントローラー名を入力、モデル クラス 、データ コンテキスト クラスは一覧より選択して、追加をクリックします。

f:id:SannomiyaNotes:20120827172455p:plain

今回の例では

データベース[SmallBakery]、テーブル[Product]ということで

コントローラー名:ProductController

モデルクラス:Product

データコンテキストクラス:SmallBakeryEntities

としました。

但し、正しい(?)名称の付け方についてはまだ勉強不足でわかってません。

 

すると、自動的に各種 (CRUD 用の) View も生成され、ソリューション エクスプローラーは下記の通りになります。

f:id:SannomiyaNotes:20120827173618p:plain

 

実際に動かす部分ですが、いろいろありますね。

1.デバッグ実行で、ホームページを表示後

URL の部分の最後にビューのフォルダ名、今回の例なら[Product](例: http://localhost:62217/ Product ) と入れてリターン キーを押す。

 

2.[App_Start]フォルダの[RouteConfig.cs]を開いてMapRouteの

 defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

の部分

 defaults: new { controller = " Product ", action = "Index", id = UrlParameter.Optional }

に変更してデバッグ実行する

 

3.[Views]-[Shared]の[_Layout.cshtml]のナビゲーション定義部分を改造してテスト用のリンクを作成する。

                    <nav>

                        <ul id="menu">

                            <li>@Html.ActionLink("ホーム", "Index", "Home")</li>

                            <li>@Html.ActionLink("バージョン情報", "About", "Home")</li>

                            <li>@Html.ActionLink("連絡先", "Contact", "Home")</li>

                            <li>@Html.ActionLink("テスト用", "Index", "Product")</li>

               </ul>

などがあります。
 
実際に動かすとこんなページに

f:id:SannomiyaNotes:20120827174905p:plain

 

Index ビュー

f:id:SannomiyaNotes:20120827174912p:plain

Create押下

f:id:SannomiyaNotes:20120827174944p:plain

Create押下すると一覧に戻ります。登録したレコードが一覧に追加されています。

f:id:SannomiyaNotes:20120827175042p:plain

他、編集ページ、詳細ページ、削除ページなど

すぐ動作可能な状態でコントロールとビューが生成されます。

あとは、検証機能を追加したり、見た目の調整をすればOK

単純なマスタの保守作業用のページ作成ならこれで充分つかえる感じですね。

 

ということで、当初のWebMatrix2やRazor構文からは大きく外れてきてしまいました。MVC4強力なもんで、今後ともこっち方面でいってしまいそうです。