Cannot apply indexing with [] to an expression of type 'System.Dynamic.DynamicObject'
Have you tried
ViewBag.SuccessBody = TempData["successBody"];
ViewBag is a dynamic wrapper for ViewData, so these two statements are the same:
ViewBag.SuccessBody = TempData["successBody"];
ViewData["SuccessBody"] = TempData["successBody"];
ViewBag
and ViewData
seem kind of interchangable, but there are different rules as to how you access the data inside of them. Your issue pops up when you try to index into a ViewBag
, which doesn't work.
For ViewBag
, you dereference the items with a dot, like this.
ViewBag.MyItem
However, with ViewData
, you access the items by indexing the appropriate key from the key value dictionary like this.
ViewData["MyItem"]