我在模板解决方案中使用RazorEngine。我 为我的模型数据使用匿名对象。代码:
string template = @"
Name: @Model.name
@foreach(var person in @Model.People) {
<row>
<column header=""Name"" width=""5cm"">@person.Name</column>
<column header=""Age"" width=""5cm"">@person.Age</column>
</row>
}";
var personList = new List<object>();
personList.Add(new { Name = "Bob", Age = 25 });
personList.Add(new { Name = "Peter", Age = 30 });
var model = new { name = "Henry", People = personList };
string result = Razor.Parse(template, model);
我收到一个RuntimeBinderException('object'不包含'Name'的定义。)
任何人都可以帮助我吗?
谢谢!
答案 0 :(得分:1)
在我看来,具有内部属性的匿名类型是一个糟糕的.NET框架设计决策。
这是一个快速而好的扩展来解决这个问题,即通过立即将匿名对象转换为ExpandoObject。