簡體   English   中英

無法將帶有[]的索引應用於“System.Dynamic.DynamicObject”類型的表達式

[英]Cannot apply indexing with [] to an expression of type 'System.Dynamic.DynamicObject'

當我嘗試為ViewBag分配值時,我收到以下錯誤:

無法將帶有[]的索引應用於“System.Dynamic.DynamicObject”類型的表達式

我的代碼如下:

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

PS:為什么我這樣做你可能會問? 因為我正在重定向到Success動作,所以我需要在重定向中保留的東西。 然后,我將值分配給ViewBag,以便將值傳遞給“共享”視圖。

你有沒有嘗試過

ViewBag.SuccessBody = TempData["successBody"];

ViewBag是ViewData的動態包裝器,因此這兩個語句是相同的:

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

ViewBagViewData似乎是可互換的,但是如何訪問它們內部的數據有不同的規則。 當您嘗試索引到ViewBag ,會彈出您的問題。

對於ViewBag ,您可以使用點取消引用項目,如下所示。

ViewBag.MyItem

但是,使用ViewData ,您可以通過索引鍵值字典中的相應鍵來訪問項目,如下所示。

ViewData["MyItem"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM