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?

È stato utile?

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?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top