首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >“System.Dynamic.DynamicObject”不包含“PropertyName”的定义

“System.Dynamic.DynamicObject”不包含“PropertyName”的定义
EN

Stack Overflow用户
提问于 2013-08-22 22:15:37
回答 2查看 19K关注 0票数 31

我面临着下一个问题:

我正在尝试运行.NET MVC站点,以便使用ViewBag将一些数据传递给我的视图。下面是我设置VeiwBag的方法。

代码语言:javascript
复制
[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’的定义。

我使用的是带有IIS4.5的Visual Studio2012和带有.NET 4.0的ApplicationPool的本地.NET服务器。在另一台具有相同配置的计算机上,所有操作都工作得很好,没有抛出异常。

请不要建议使用其他技术,如ViewData"“和创建一个单独的模型,我不想改变代码,在另一台机器上很好地工作。

我想这是配置错误的问题。任何猜测都将不胜感激。谢谢

EN

回答 2

Stack Overflow用户

发布于 2014-06-30 18:32:18

你的代码很好,ViewBag有一个动态属性,在运行时所有的属性都被分配了。

此异常是常见的CLR异常。尝试执行以下步骤,我希望它会起作用。打开Visual Studio

  • 调试-->异常--> (取消选中)

公共语言运行时异常

如果问题仍然存在

代码工具-->选项-->调试(展开) -->常规--> (选中)启用仅我的代码

希望它能帮上忙,它对我很有效

Click Here for Detailed Images

票数 34
EN

Stack Overflow用户

发布于 2013-09-06 04:25:08

我相信这是来自另一个堆栈溢出答案的问题:

正如我们从您的评论中看到的,您正在另一个控制器中设置ViewBag.Message。ViewBag仅用于由为视图提供服务的控制器设置的视图的数据。

如果需要从另一个控制器发送,则应该在操作方法中使用参数,然后可以将ViewBag.Message设置为传入的参数。

ViewBag RuntimeBinderException (MVC 4, ASPX)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18383012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档