Sintassi NVELOCITY per i metodi di chiamata con parametri valutati
Domanda
Ho un modello abbastanza semplice di cui ho bisogno per effettuare una chiamata di metodo.Tuttavia, la NveLocietà non sembra valutare i parametri del metodo che sono Variabili di NveLocietà .Prendi il seguente modello di NveLocity:
#if (--- CONDITION SNIPPED ---)
<blockquote class="column span-4">
I MADE IT!
</blockquote>
#else
<blockquote class="column span-4">
$extensionMethods.TestMethod(${var1})
</blockquote>
#end
.
Nel modello sopra riportato, $extensionMethods
viene trasmesso come un'istanza di una classe e funziona meravigliosamente quando si passa in numeri valutati (ad esempio $extensionMethods.TestMethod(4)
funziona ogni volta).Tuttavia, l'utilizzo di $var1
fa sì che l'intera stringa sia restituita come: $extensionMethods.TestMethod(${var1})
.
C'è un modo per passare in una variabile a un metodo pigramente per ottenere il modello sopra riportato per valutare correttamente?
Soluzione
Se hai problemi, è probabile che sia qualcosa a che fare con i tipi di variabili o la disponibilità del metodo.Ho costruito e testato quanto segue:
public class TestClass
{
#region Methods
public string DoSomething(string name)
{
return name.ToUpperInvariant();
}
public string DoSomethingElse(int age)
{
return (age*10).ToString();
}
#endregion
}
.
E il mio modello:
#set($myVar = "matt")
#set($myVar2 = 10)
Name: $test.DoSomething(${myVar})
Age: $test.DoSomethingElse(${myVar2})
.
e l'uscita:
Name: "MATT"
Age: 100
.
Possiamo vedere un codice per i tuoi metodi di estensione?