0

我在模板解决方案中使用 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(“对象”不包含“名称”的定义)。

谁能帮我?

谢谢!

4

1 回答 1

1

在我看来,具有内部属性的匿名类型是一个糟糕的 .NET 框架设计决策。

这是解决此问题的快速且不错的扩展,即立即将匿名对象转换为 ExpandoObject。

请参考这个问题的答案:https ://stackoverflow.com/a/5670899/544283 。

于 2013-05-24T14:53:45.300 回答