Asp.Net MVC

紹介

この 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/機能満載! ロリポップ!レンタルサーバー ★

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:32:17 (1628d)

yVoC[UNLIMITȂ1~] ECirŃ|C Yahoo yV LINEf[^[Ōz500~`I


z[y[W ̃NWbgJ[h COiq 萔O~ył񂫁z COsیI COze