我已经创建了一个dotLiquid模板,其中嵌套了两个for循环
{% for item in page.Fields %}
<li>
{{ item.Name }}:
<select>
{% for list in item.ListValues %}
<option>{{ list.Text }} </option>
{% endfor %}
</select>
</li>
{% endfor %}使用以下类:
public class Page: Drop
{
public string Name { get; set; }
public List<Field> Fields { get; set; }
}
public class Field : Drop
{
public string Name { get; set; }
public List<ListValue> ListValues { get; set; }
}
public class ListValue : Drop
{
public string Text { get; set; }
}然后我创建了一个对象,并像这样运行它:
page = MyPage; // This is the created object
Template template = Template.Parse(LiquidTemplate);
string output = template.Render(Hash.FromAnonymousObject(new { page = this.page }));该对象填充为:
new Page
{
Name = "My Page",
Fields = new List<Field>
{
new Field
{
Name = "Title",
ListValues = new List<ListValue>()
},
new Field
{
Name = "Status",
ListValues = new List<ListValue>
{
new ListValue
{
Text = "Open"
}
}
}
}
}; 内部的for循环不会被填充,即使对象很好。我看到很多空的内部循环<option>标记...
我刚开始使用dotLiquid,我哪里做错了?
发布于 2016-10-15 02:05:03
这个解决方案来自dotliquid的开发人员(我在github project的问题列表中发布了相同的问题)
默认情况下,dotliquid使用ruby convention。
https://stackoverflow.com/questions/40011491
复制相似问题