Razor中的动态匿名类型会导致RuntimeBinderException

Razor中的动态匿名类型会导致RuntimeBinderException

我得到了以下错误:

“Object”不包含“RatingName”的定义

当您查看匿名动态类型时,它显然有RatingName。


我意识到我可以用一个元组来完成这个任务,但是我想了解为什么会出现错误消息。


qq_笑_17
浏览 659回答 3
3回答

qq_花开花谢_0

我在一个相关问题..答案是在大卫·埃博的博客文章中指定的。将匿名对象传递给MVC视图并使用动态访问它们原因是控制器内部传递匿名类型,因此只能从声明它的程序集中访问它。由于视图是单独编译的,所以动态绑定程序会抱怨它无法越过该程序集边界。但是,考虑一下,来自动态绑定的限制实际上是相当人工的,因为如果您使用私有反射,没有什么可以阻止您访问这些内部成员(是的,它甚至在中等信任中工作)。因此,默认的动态绑定程序正在采取强制执行C#编译规则的方法(不能访问内部成员),而不是让您执行CLR运行时允许的操作。
打开App,查看更多内容
随时随地看视频慕课网APP