我正在使用Castles的NVelocity引擎来做一些模板工作。问题就在这里。我的几个模板工作得很好,但有一个模板不行。
#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由于某种原因,上面的代码只能运行一半。我得到了6组包含所有内部内容的div标签,但是Velocity输出的是$i.ShortName而不是$i.ShortName上的内容。你知道为什么会这样吗?如果我得到六个输出,我会相信Items是正确设置的并且存在于Velocity模板中。但出于某种奇怪的原因,孩子们不会。
现在Items是一个List<CategoryItem>,我一遍又一遍地检查以确保我没有拼错成员的名字。
我遗漏了什么?
发布于 2010-02-03 01:19:45
好吧。所以我想(我认为)这似乎是子对象只会将它们的属性暴露给模板。例如:
public class Item{
   public string BadName;
   public stirng GoodName {
       get {
           return "Foo"
       }
   }
}可以在模板中引用GoodName,但不能引用BadName
https://stackoverflow.com/questions/2185812
复制相似问题