我创建了一个动态对象,如下所示:
dynamic myObject = new
{
DisplayName = "Mahesh"
};
Content = Parse("Main", myObject);
然后我将其解析为Razor模板。但它不起作用,因为对象无法访问其属性。这有什么问题?
提前致谢,
答案 0 :(得分:3)
我是这样做的,它有效。但我想知道为什么我先做的方式不起作用
dynamic FooterModel = new ExpandoObject();
FooterModel.DisplayName= "Kaplan";
答案 1 :(得分:2)
匿名类型存在一些辅助功能问题,因为dynamic
通过c#provider 尝试尊重辅助功能。不同模块中的匿名类型不可访问(并且记住MVC页面通常会编译到不同的模块中),因此没有属性。
ExpandoObject
不会遭受这种情况,因为它不使用c#提供程序(它实现了IDynamicMetaObjectProvider
),并且没有可访问性的概念(它只是将成员名称映射到字典)。