Razor中的动态匿名类型会导致RuntimeBinderException我得到了以下错误:“Object”不包含“RatingName”的定义当您查看匿名动态类型时,它显然有RatingName。我意识到我可以用一个元组来完成这个任务,但是我想了解为什么会出现错误消息。
3 回答
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
原因是控制器内部传递匿名类型,因此只能从声明它的程序集中访问它。由于视图是单独编译的,所以动态绑定程序会抱怨它无法越过该程序集边界。
但是,考虑一下,来自动态绑定的限制实际上是相当人工的,因为如果您使用私有反射,没有什么可以阻止您访问这些内部成员(是的,它甚至在中等信任中工作)。因此,默认的动态绑定程序正在采取强制执行C#编译规则的方法(不能访问内部成员),而不是让您执行CLR运行时允许的操作。
- 3 回答
- 0 关注
- 702 浏览
添加回答
举报
0/150
提交
取消