为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

qq_笑_17 2019-07-02 16:26:42
Razor中的动态匿名类型会导致RuntimeBinderException我得到了以下错误:“Object”不包含“RatingName”的定义当您查看匿名动态类型时,它显然有RatingName。我意识到我可以用一个元组来完成这个任务,但是我想了解为什么会出现错误消息。
查看完整描述

3 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超6个赞

我在一个相关问题..答案是在大卫·埃博的博客文章中指定的。将匿名对象传递给MVC视图并使用动态访问它们

原因是控制器内部传递匿名类型,因此只能从声明它的程序集中访问它。由于视图是单独编译的,所以动态绑定程序会抱怨它无法越过该程序集边界。

但是,考虑一下,来自动态绑定的限制实际上是相当人工的,因为如果您使用私有反射,没有什么可以阻止您访问这些内部成员(是的,它甚至在中等信任中工作)。因此,默认的动态绑定程序正在采取强制执行C#编译规则的方法(不能访问内部成员),而不是让您执行CLR运行时允许的操作。


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 653 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信