コンテンツにスキップ

ASP.NET MVCモデルのビューへの値の渡し方

ASP.NET CoreのMVCアプリケーションで、コントローラーからビューに値を渡す方法

Usage

文字列

文字列をビューに代入して表示する

public IActionResult About()
{
   ViewData["Message"] = "Hello World.";

   return View();
}

ViewDataに代入した値がそのまま表示される

@{
    ViewData["Title"] = "About";
}
<p>@ViewData["Message"]</p> // Hello World.

プロパティ

ViewDataのデータ型はディクショナリーとして扱われ、複数のプロパティやリストを格納してビューに渡すことができる

public IActionResult Privacy()
{
   ViewData["Product"] = new Product()
   {
      Id = 1,
      Name = "Pen",
      Price = 300,
   };

  return View();
}
@{
    var product = ViewData["product"] as Product;
}
@product.Name // Pen

リスト

ViewDataにリストを格納した場合の例

var nameList = new List<User>();
foreach(var data in records)
{
nameList.Add(data);
}

ViewData["Records"] = nameList;

リストに格納された各アイテムをforeachで取り出す

<ul>
 @foreach (var item in ViewData["Records"] as IList<User>)
 {
    <li>@item.Name</li>
 }
</ul>

Reference

ASP.NET Core MVC のビュー