[英]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"];
ViewBag
和ViewData
似乎是可互換的,但是如何訪問它們內部的數據有不同的規則。 當您嘗試索引到ViewBag
,會彈出您的問題。
對於ViewBag
,您可以使用點取消引用項目,如下所示。
ViewBag.MyItem
但是,使用ViewData
,您可以通過索引鍵值字典中的相應鍵來訪問項目,如下所示。
ViewData["MyItem"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.