ASP.NET MVC 3 RAZOR ViewBagへの代入と取出し

2012/05/06

ControllersでViewBagに文字列や配列とかを入れて、ViewsでViewBagを出力したい。

記述サンプル

文字列

代入:Controllersで「ViewBag.typeString = "すとりんぐねーむ";」。
出力:Viewsで「@ViewBag.typeString」
※「ViewBag.typeString」の「typeString」は任意でok。

数値

代入:Controllersで「ViewBag.typeInt = 123456;」。
出力:Viewsで「@ViewBag.typeInt」
※「ViewBag.typeInt」の「typeInt」は任意でok。

配列

代入:Controllersで「ViewBag.typeList = new List<string>(){"りすと1", "りすと2", "りすと3"};」。
出力:Viewsで「@ViewBag.typeList[0]」、「@ViewBag.typeList[1]」、「@ViewBag.typeList[2]」
※「ViewBag.typeList」の「typeList」は任意でok。

連想配列

代入:Controllersで「ViewBag.typeDictionary = new Dictionary<string, string>(){{"a1", "でぃくしょなりa1"}, {"b2", "でぃくしょなりb2"}, {"c3", "でぃくしょなりc3"}};」。
出力:Viewsで「@ViewBag.typeList["a1"]」、「@ViewBag.typeList["b2"]」、「@ViewBag.typeList["c3"]」
※「ViewBag.typeDictionary」の「typeDictionary」は任意でok。

サンプルソース

とりあえず「Controllers/RazorController.cs」と「Views/Razor/rz001.cshtml」というファイルを用意

「Controllers/RazorController.cs」のソース

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Mvc;
  6.  
  7. namespace TestProject.Controllers
  8. {
  9.   public class RazorController : Controller
  10.   {
  11.     public ActionResult Index()
  12.     {
  13.       return View();
  14.     }
  15.  
  16.     public ActionResult rz001()
  17.     {
  18.       // 文字列
  19.       ViewBag.typeString = "すとりんぐねーむ";
  20.  
  21.       // 数値
  22.       ViewBag.typeInt = 123456;
  23.  
  24.       // 配列(List()を使う)
  25.       ViewBag.typeList = new List<string>(){"りすと1", "りすと2", "りすと3"};
  26.  
  27.       // 連想配列?(Dictionary()を使う)
  28.       ViewBag.typeDictionary = new Dictionary<string, string>(){{"a1", "でぃくしょなりa1"}, {"b2", "でぃくしょなりb2"}, {"c3", "でぃくしょなりc3"}};
  29.  
  30.       return View();
  31.     }
  32.   }
  33. }

「Views/Razor/rz001.cshtml」のソース

  1. @{
  2.   ViewBag.Title = "ViewBagの表示";
  3. }
  4.  
  5. <h2>@ViewBag.Title</h2>
  6.  
  7. <h3>string</h3>
  8. <div>
  9.   @ViewBag.typeString<br />
  10. </div>
  11.  
  12. <h3>int</h3>
  13. <div>
  14.   @ViewBag.typeInt<br />
  15. </div>
  16.  
  17. <h3>List:配列系</h3>
  18. <div>
  19.   @ViewBag.typeList[0]<br />
  20.   @ViewBag.typeList[1]<br />
  21.   @ViewBag.typeList[2]<br />
  22. </div>
  23.  
  24. <h3>Dictionary:連想配列系</h3>
  25. <div>
  26.   @ViewBag.typeDictionary["a1"]<br />
  27.   @ViewBag.typeDictionary["b2"]<br />
  28.   @ViewBag.typeDictionary["c3"]<br />
  29. </div>

新着(ニュース関連以外)

2017-08-03
formのinputでmaxlengthを使うとFirefoxでバグってた。他のブラウザでも気づかずにバグってたかもしれない。
2017-07-19
折れ線グラフをもう少しゆるやかに・・・というか何というか・・・調べていくと「移動平均」っていう言葉にたどり着いた
2017-07-10
FuelPHPの1.8をダウンロードして使っていたらセッションが使えないということに気付いた。
2017-06-27
MACにWin10をインストールしてみた:再挑戦。
2017-06-25
「簡単」っていうヤツらが多いけど・・・難しいぞ。