我正在使用Castles的NVelocity Engine来完成一些模板工作。这是问题所在。我的一些模板工作正常,但其中一个不是。
#foreach($i in $Items)
<div class="grid_3 folioItem"> <a rel="prettyPhoto[portfolio]" href="$i.Link" class="lightBox"><img src="$i.Image" width="220" height="125" alt="showcase" /></a>
<h4>$i.ShortName</h4>
<p>$i.LongName</p>
<p><a class="button pngFix" href="$i.Link">$i.LinkText</a></p>
</div>
#end
由于某种原因,上面的代码工作了一半。我得到了六组带有所有内部的div标签,但Velocity输出$ i.ShortName而不是$ i.ShortName上的内容。任何线索为什么会这样?如果我得到六个输出,这将让我相信项目设置正确并存在于Velocity模板中。但由于一些奇怪的原因,它的孩子不会。
现在项目是List<CategoryItem>
,我一遍又一遍地检查,以确保我没有拼错成员的名字。
我错过了什么?
答案 0 :(得分:0)
好。所以我想出来(我认为)它似乎是子对象只会将它们的属性暴露给模板。例如:
public class Item{
public string BadName;
public stirng GoodName {
get {
return "Foo"
}
}
}
可以在模板中引用GoodName,但BadName不能