Frage

Ich habe nach dieser Führer und kommt mit meinem eigenen Gebräu auf, um die Monorail FormHelper.Select zu verwenden, die aus einer enum erzeugt wird. Also hier ist die Brail Syntax:

${FormHelper.Select("user.Role", ${LS.EnumToPairs(Roles)}, {"value":"First", "text":"Second"})}

„LS“ ist nur meine eigenen Helfer, die ich definiert haben, wie folgt:

public IEnumerable<Pair<int, string>> EnumToPairs(Type e)
{
    IList<Pair<int, string>> pairs = new List<Pair<int, string>>();

    foreach (int val in Enum.GetValues(e))
        pairs.Add(new Pair<int, string>(val, Enum.GetName(e, val)));

    return pairs;
}

Doch von diesem, trotz der korrekten Syntax zu sein, ich die folgende Fehlermeldung erhalten:

  

Node '$ ({return Castle.MonoRail.Views.Brail.ExpandDuckTypedExpressions_WorkaroundForDuplicateVirtualMethods.Invoke (self.GetParameter (' LS '), 'EnumToPairs', (self.GetParameter (' Rollen ')))})' hat nicht korrekt gewesen

Die Quelle Fehler hilft nicht viel leider:

  

Zeile 15: Ausgang FormHelper.TextField ( "user.Role", { "Klasse": "Text-Eingabe in voller Breite"})   Zeile 16: Ausgang „““   Zeile 17: ""“   Zeile 18: Ausgang FormHelper.Select ( "user.Role", $ {LS.EnumToPairs (Rollen)}, { "Wert": "First", "text": "Second"})   Zeile 19: Ausgang "" "

Alle Ideen, was ich falsch hier?

Bearbeiten

Auf der Grundlage der Antwort weiter unten wurde die Lösung schließlich so aus:

${FormHelper.Select("user.Role", LS.EnumToPairs(Roles), {"value":"First","text":"Second"})}

Wo Rollen waren PropertyBag["Roles"] = typeof(Role);

War es hilfreich?

Lösung

Versuchen Sie diese:

${FormHelper.Select("user.Role", LS.EnumToPairs(typeof(Roles)), {"value":"First", "text":"Second"})}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top