Viewで後で使用するためにViewBagに値を割り当てようとしていますが、次のエラーが表示されます。ViewBag- MVC3-ASP.NET
このようなコントローラの値の割り当て。
ViewBag["isAdmin"]=true;
エラー:
Cannot apply indexing with [] to an expression of type 'System.Dynamic.DynamicObject'
誰もが前にこれを持っていますか?
Viewで後で使用するためにViewBagに値を割り当てようとしていますが、次のエラーが表示されます。ViewBag- MVC3-ASP.NET
このようなコントローラの値の割り当て。
ViewBag["isAdmin"]=true;
エラー:
Cannot apply indexing with [] to an expression of type 'System.Dynamic.DynamicObject'
誰もが前にこれを持っていますか?
必要なものはViewBag.isAdmin = true
です。あなたがアクセスすることができ、フォローアップとして
if(ViewBag.isAdmin)
{
//do stuff
}
であり、ViewBag(およびViewDataを)の背後にある考え方は、原料のキーと値のペアをオフに保存し、便利なビューでそれらを超えるアクセスできることです。
はViewDataを使用すると、そのようにこれらのものを参照:
ViewData["SomeKey"] = someObject;
あなたが使用して同じことをしたい場合のViewData辞書作成することをラッピングを周りに提供し、それは少し冗長となりViewBag代わりに(もう少し読みやすい)あなたがそうのようなものを参照:
ViewBag.isAdmin = true;
し、それらを確認することができ、tyrongowerがそうのように、上述のように:
if (ViewBag.isAdmin)
{
// do stuff
}
私は通常、この構造体を使用するときにViewBag構文を使用しますが、実際には同じものを参照します。あなたが見る外のそうのような何かをしたのであれば:
ViewBag.isAdmin
またはその逆:
ViewData["isAdmin"] = true;
をあなたがそう傾いた場合には、このようにそれを参照することができます。
概念のちょっと詳細です。
'ViewBag'は'ダイナミック 'タイプですので、ドット表記を使うことができます。しかし、 'ViewData'は' Dictionary'(よくViewDataDictionary)型ですので、インデックスを使ってキーを指定する必要があります。 –