紹介 †この ViewBag も ViewData と同じくコントローラからビューにデータを受け渡すための入れ物として使用できます。MVC 3 から登場したようで、Microsoftは従来の ViewData よりも新しい ViewBag の方を使用するように推奨しているようです。 こんな感じです。 Controllers/HomeController.cs namespace HelloWorld1.Controllers { public class HomeController : Controller { public ActionResult Index() { ViewBag.MyMessage = "Hello World via ViewBag !"; return View(); } } } Views/Home/Index.cshtml @{ ViewBag.Title = "Index"; } <h2>Index</h2> <p> @ViewBag.MyMessage </p> 相違点 †ViewBagの型はdynamic、ViewDataの型はViewDataDictionaryです。 ViewData に対する優位点としては、プロパティの型が厳密にチェックされる、ということです。 コントローラ側で ViewData["price"] = 100; ビュー側で <p>@(ViewData["price"] * 1.05)</p> 型が不一致で実行時エラーになります。キャストする必要があります。 でもViewBag なら ViewBag.Price = 100; ビュー側で <p>@(ViewBag.Price * 1.05)</p> としても実行時エラーにならず、キャストする必要がありません。 ★月額105円~/容量最大30GB/機能満載! ロリポップ!レンタルサーバー ★ コメント: |