'System.Dynamic.DynamicObject' does not contain a de
本文关键字:contain de not DynamicObject System Dynamic does | 更新日期: 2023-09-27 18:28:49
我面临下一个问题:
我正在尝试运行.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"不包含的定义"禁止理由"。
我使用的是带有.NET 4.5的Visual Studio 2012和带有.NET 4.0的ApplicationPool的本地IIS服务器。在另一台配置相同的计算机上,所有操作都很好,没有出现异常。
请不要建议使用其他技术,如ViewData["]和创建单独的模型,我不想更改在其他机器上运行良好的代码。
我认为这是配置失误的问题。任何猜测都将不胜感激。感谢
您的代码很好,ViewBag有一个动态属性,并且在运行时中所有属性都被分配。
此异常是常见的CLR异常。。试着做以下步骤,我希望它会起作用。打开Visual Studio
- 调试-->异常-->(取消选中)公共语言运行时异常
如果仍然出现问题
- 工具-->选项-->调试(展开)-->常规-->(选中)仅启用我的代码
希望它能帮上忙,对我有用
点击此处查看详细图像
我相信这是您的问题,来自另一个stackerflow答案:
正如我们从您的评论中看到的,您正在另一个控制器中设置ViewBag.Message。ViewBag仅用于由为视图提供服务的控制器设置的视图的数据。
如果你需要从另一个控制器发送,你应该在你的操作方法中使用一个参数,然后你可以将ViewBag.Message设置为传入的参数。
ViewBag运行时绑定异常(MVC 4,ASPX)