Castle NVelocity包括变量而不是可变内容

时间:2010-02-02 16:41:33

标签: velocity castle-monorail nvelocity

我正在使用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>,我一遍又一遍地检查,以确保我没有拼错成员的名字。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

好。所以我想出来(我认为)它似乎是子对象只会将它们的属性暴露给模板。例如:

public class Item{
   public string BadName;
   public stirng GoodName {
       get {
           return "Foo"
       }
   }
}

可以在模板中引用GoodName,但BadName不能