RealPath:
WebPath:
2018/08/12 10:29 (JST) 更新
MVC >>

MVC連携

Contents

モデル例

/Models/MyData.cs
public class MyData
{
    public int Number { get; set; }
}

コントローラ例

一般的にコントローラ内アクションでは return View(); で処理が終わることが多いが、この View() の引数としてモデルクラスのインスタンスを渡すことにより、ビュー側でモデルデータを利用することができる。
 

/Controllers/HelloController
using Microsoft.AspNetCore.Mvc;
public class HelloController : Controller
{
    public IActionResult World()
    {
        var model = new MyData { Number = 1234 };
        return View(model);
    }
}

ビュー例

ビュー側で受け取ったモデルは以下のようにして @Model キーワードにより参照することができる。

/Views/Hello/World.cshtml
<h2>World @Model.Number</h2>

 
ビューが受け取るモデルの型を限定したい場合は @model ディレクティブをビューファイル先頭に記述する。

/Views/Hello/World.cshtml
@model MyData  // ビューが受け取るモデル型を MyData に限定する
<h2>World @Model.Number</h2>

ビューが受け取るモデルの型を制約することにより、強い型付けによる安全な運用を行うことができる。
また、ビュー編集を担うエディタが @Model の型を認識できるため、インテリセンスが機能し、コーディング効率が上がる。

このような理由から、ビュー内で @model ディレクティブ指定することを強く勧める。

今回のサンプルによるページ表示内容

今回のモデル・コントローラ・ビュー例では、http://..../Hello/World のページは以下のような表示となる。
 
img--450--size