Frage

Ich habe eine ziemlich einfache Vorlage, aus der ich einen Methodenaufruf durchführen muss.NVelocity scheint jedoch keine Methodenparameter auszuwerten, die selbst vorhanden sind NVelocity-Variablen.Nehmen Sie die folgende NVelocity-Vorlage:

#if (--- CONDITION SNIPPED ---)
    <blockquote class="column span-4">
          I MADE IT!
    </blockquote>
#else
    <blockquote class="column span-4">
         $extensionMethods.TestMethod(${var1})
</blockquote>       
#end

In der obigen Vorlage $extensionMethods wird als Instanz einer Klasse übergeben und funktioniert wunderbar bei der Übergabe ausgewerteter Zahlen (z. B. $extensionMethods.TestMethod(4) funktioniert jedes Mal).Allerdings mit $var1 bewirkt, dass die gesamte Zeichenfolge unverändert zurückgegeben wird: $extensionMethods.TestMethod(${var1}).

Gibt es eine Möglichkeit, eine Variable langsam an eine Methode zu übergeben, damit die obige Vorlage korrekt ausgewertet wird?

War es hilfreich?

Lösung

Wenn Sie Probleme haben, liegt das wahrscheinlich an Ihren Variablentypen oder der Verfügbarkeit der Methode.Ich habe Folgendes gebaut und getestet:

public class TestClass
{
    #region Methods
    public string DoSomething(string name)
    {
        return name.ToUpperInvariant();
    }

    public string DoSomethingElse(int age)
    {
        return (age*10).ToString();
    }
    #endregion
}

Und meine Vorlage:

#set($myVar = "matt")
#set($myVar2 = 10)

Name: $test.DoSomething(${myVar})
Age: $test.DoSomethingElse(${myVar2})

Und die Ausgabe:

Name: "MATT"
Age: 100

Können wir Code für Ihre Erweiterungsmethoden sehen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top