Monorail Wählen Enum Verwendung
-
29-09-2019 - |
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);
Lösung
Versuchen Sie diese:
${FormHelper.Select("user.Role", LS.EnumToPairs(typeof(Roles)), {"value":"First", "text":"Second"})}