不能将带有 [] 的索引应用于类型 'System.Dynamic.DynamicObject' 的表达式



当我尝试为ViewBag分配值时,出现以下错误:

无法将带有 [] 的索引应用于类型为"System.Dynamic.DynamicObject"的表达式

我的代码如下:

public ActionResult Success()
{
   ViewBag["SuccessBody"] = TempData["successBody"];
   return View();
}

PS:你可能会问我为什么要这样做?因为我正在重定向到成功操作,并且我需要一些在重定向中持续存在的东西。然后,我将值分配给ViewBag,以便将值传递给"共享"视图。

你试过吗

ViewBag.SuccessBody = TempData["successBody"];

ViewBag 是 ViewData 的动态包装器,因此这两个语句是相同的:

ViewBag.SuccessBody = TempData["successBody"];
ViewData["SuccessBody"] = TempData["successBody"];

ViewBagViewData似乎是可以互换的,但是对于如何访问其中的数据有不同的规则。 当您尝试索引到ViewBag时,会弹出您的问题,这不起作用。

对于ViewBag,您可以使用点取消引用项目,如下所示。

ViewBag.MyItem

但是,使用 ViewData ,您可以通过像这样从键值字典中索引相应的键来访问项目。

ViewData["MyItem"]

相关内容

最新更新