2011-05-09 52 views
4

我想在StringTemplate中使用类似的东西 - 调用在执行渲染的应用程序中定义的函数,这可能吗?StringTemplate中的回调函数或简单的算术运算

<div> $renderArticle(article,width,padding)$ </div>

我可以使用自定义类型/班只是为这个领域,但似乎有点togheter而不是砍死真正解决这个问题,它不会让我在参数传递就我知道的。

我想这个,因为我想让用户自定义模板,例如:我知道多少宽度我有文章可用,但我希望用户能够指定填充,以便我可以生成最佳图像该模板内的缩略图。

或者,如果是可以用简单的算术,那将是另一种解决问题的办法,这样的事情也许是:

... width="$width-50$ ...

我一直在到处找这一点,没有发现任何信息。 ..

我宁愿使用StringTemplate,因为应用程序已经使用它,但如果它更合适,我可以切换到别的东西,也许我应该看看NVelocity?

+0

不,您不能在StringTemplate中进行任何计算,因为这会混合模型和视图行为。 – I82Much 2011-05-09 16:52:41

+0

doh,看起来我将不得不采取另一条路线,然后... – possan 2011-05-09 19:57:49

回答

2

正如I82Much在他的评论中所说的,StringTemplate不支持计算。

一个解决方案是使用一个新属性来丰富您的模型,该属性的值预先计算为'width-50'。

如果您正在寻找替代品,并且您使用的是.net 4.0,则可以托管剃须刀视图引擎并将其用作您的模板解决方案。