簡體   English   中英

'System.Dynamic.DynamicObject'不包含'PropertyName'的定義

[英]'System.Dynamic.DynamicObject' does not contain a definition for 'PropertyName'

我遇到了下一個問題:

我正在嘗試運行.NET MVC站點以使用ViewBag將一些數據傳遞給我的View。 這是我設置VeiwBag的方法。

[HttpGet]
[AllowAnonymous]
public ActionResult Start()
{
    ViewBag.BanReason = null;
    int userId;

    //Request with UserId, display ban reason if necessary
    if (Request.Params["UserId"] != null && int.TryParse(Request.Params["UserId"], out userId))
    {
        ViewBag.BanReason = CheckIfUserBanned(userId);
    }

    ViewBag.Users = MvcApplication.Users;

    return View();
}

當我為ViewBag賦值(例如ViewBag.BanReason = null;)時,我得到了帶有消息的RuntimeBinderException

'System.Dynamic.DynamicObject'不包含'BanReason'的定義。

我正在使用帶有.NET 4.5的Visual Studio 2012和帶有.NET 4.0的ApplicationPool的本地IIS服務器。 在具有相同配置的另一台計算機上,所有工作都很好,並且不會拋出任何異常。

請不要建議使用其他技術,如ViewData [“”]和創建單獨的模型,我不想更改在其他機器上運行良好的代碼。

我認為這是錯過配置問題。 任何猜測將不勝感激。 謝謝

您的代碼很好,ViewBag具有動態屬性,並且在運行系統中正在分配所有屬性。

這個異常是一個常見的CLR異常。嘗試執行以下步驟,我希望它能工作。 打開Visual Studio

  • 調試 - >例外 - >(取消選中)公共語言運行時異常

如果仍然出現問題

  • 工具 - >選項 - >調試(擴展) - >常規 - >(檢查)啟用我的代碼

希望它有所幫助,它為我工作

點擊這里查看詳細圖片

我相信這是來自另一個stackoverflow答案的問題:

正如我們在您的評論中看到的那樣,您正在另一個控制器中設置ViewBag.Message。 ViewBag僅用於由提供視圖的控制器設置的視圖的數據。

如果需要從另一個控制器發送它,則應在操作方法中使用參數,然后可以將ViewBag.Message設置為傳入的參數。

ViewBag RuntimeBinderException(MVC 4,ASPX)

暫無
暫無

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

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