我有一个使用dotliquid的 .NET Core 应用程序。从在线尝试看来,我可以绑定数组内对象的属性。就像{{user.tasks[0].name}}
wheretasks
是task
对象的集合并且name
是task
.
我有 JSON 模型,可以作为模板的输入。我在设计时不知道 JSON 结构。所以我将 JSON 字符串转换为ExpandoObject
.
但是,当我绑定数组内的对象的属性时,这不起作用。
public class Program
{
public static void Main()
{
// this does not work
var modelString = "{\"States\": [{\"Name\": \"Texas\",\"Code\": \"TX\"}, {\"Name\": \"New York\",\"Code\": \"NY\"}]}";
var template = "State Is:{{States[0].Name}}";
Render(modelString,template);
//this works
modelString = "{\"States\": [\"Texas\",\"New York\"]}";
template = "State Is:{{States[0]}}";
Render(modelString,template);
}
private static void Render(string modelString, string template)
{
var model = JsonConvert.DeserializeObject<ExpandoObject>(modelString);
var templateModel = Hash.FromDictionary(model);
var html = Template.Parse(template).Render(templateModel);
Console.WriteLine(html);
}
}