2016年11月29日火曜日

ASP.NET MVC 07_ビューでHelloWorld(モデル)

VisualStuidioCommunity2015/Fw4.5.2/C#


前回はビュー変数を使用して、ビューに「Hello World」 を表示しました。
今回はモデルを使用して、ビューに「Hello World」を表示します。

モデルの作成

まずはモデルから作成します。
Modelsフォルダを右クリックし、コンテキストメニューから「クラス」を選択します。
ファイル名は「HelloViewModel.cs」とします。
ビューに表示する文字列を取得および設定する「Message」プロパティを定義します。

Models/HelloViewModel.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Practice01_Begin.Models
{
    public class HelloViewModel    {

        public String Message { get; set; }

    }
}

モデルを作成したら、一旦ビルドしておきます。

コントローラの作成

前回まで使用していたコントローラー「HelloControler」に新たにアクションメソッド「ShowModel」を追加します。
17行目で、先ほど作成したHelloViewModelクラスのオブジェクトを作成し、
18行目で、Messageプロパティに「Hello World」を設定しています。
29行目では、Viewメソッドの引数にHelloViewModelオブジェクトを指定して、ビューを表示します。

Controllers/HelloControler.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Practice01_Begin.Controllers
{
    public class HelloController : Controller
    {

        //・・・前回までのコードは省略

        public ActionResult ShowModel()
        {
            //HelloViewModelオブジェクトを作成し初期値を設定する
            Models.HelloViewModel mdl = new Models.HelloViewModel();
            mdl.Message = "Hello World";
            //モデルを指定してビューを表示する
            return View(mdl);

        }
    }
}

ビューの作成

最後にビューを作成します。
コントローラーのアクションメソッド「ShowModel」にカーソルを置いた状態で右クリックし、コンテキスメニューより「ビューの追加」をクリックします。
「ビューの追加」ダイアログで、以下の項目を設定します。
・ビュー名: ShowModel
・テンプレート: Empty
・モデルクラス: HelloViewModel
・レイアウトページの使用:チェックON
テンプレートをデフォルトの「Empty(モデルなし)」から「Empty」を選択すると、モデルクラスが選択できるようになります。

作成したビューのコードを見てみましょう。
1行目に「@model Practice01_Begin.Models.HelloViewModel」と記述されています。
Viewメソッドでモデルを受け渡す場合は、@modelディレクティブで使用するモデルを宣言しておきます。
9行目ではModelプロパティでHelloViewModelモデルのMessageプロパティの値を出力しています。

Views/Hello/ShowModel.cshtml
@model Practice01_Begin.Models.HelloViewModel

@{
    ViewBag.Title = "ShowModel";
}

ShowModel

@Model.Message


デバッグ実行して、ShowModelビューに Hello World が表示されることを確認します。

0 件のコメント: