用于调用带有评估参数的方法的 NVelocity 语法
题
我有一个相当简单的模板,我需要从中进行方法调用。然而,NVelocity 似乎并没有评估方法参数本身 NV速度变量. 。采用以下 NVelocity 模板:
#if (--- CONDITION SNIPPED ---)
<blockquote class="column span-4">
I MADE IT!
</blockquote>
#else
<blockquote class="column span-4">
$extensionMethods.TestMethod(${var1})
</blockquote>
#end
在上面的模板中, $extensionMethods
作为类的实例传入,并且在传入评估数字(例如 $extensionMethods.TestMethod(4)
每次都有效)。然而,使用 $var1
导致整个字符串按原样返回: $extensionMethods.TestMethod(${var1})
.
有没有办法将变量惰性地传递给方法以使上述模板正确评估?
解决方案
如果您遇到问题,可能与您的变量类型或方法可用性有关。我构建并测试了以下内容:
public class TestClass
{
#region Methods
public string DoSomething(string name)
{
return name.ToUpperInvariant();
}
public string DoSomethingElse(int age)
{
return (age*10).ToString();
}
#endregion
}
还有我的模板:
#set($myVar = "matt")
#set($myVar2 = 10)
Name: $test.DoSomething(${myVar})
Age: $test.DoSomethingElse(${myVar2})
和输出:
Name: "MATT"
Age: 100
我们可以看看您的扩展方法的一些代码吗?
不隶属于 StackOverflow