Monorotaia Select Utilizzando Enum
-
29-09-2019 - |
Domanda
Ho seguito questa guida e venire con la mia intruglio al fine di utilizzare FormHelper.Select
della monorotaia che viene generato da un enum. Quindi, ecco la sintassi Brail:
${FormHelper.Select("user.Role", ${LS.EnumToPairs(Roles)}, {"value":"First", "text":"Second"})}
"LS" è solo il mio aiuto, che ho definito come segue:
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;
}
Ma da questo, pur essendo la sintassi corretta, ottengo il seguente errore:
Nodo '$ ({return Castle.MonoRail.Views.Brail.ExpandDuckTypedExpressions_WorkaroundForDuplicateVirtualMethods.Invoke (self.GetParameter (' LS '), 'EnumToPairs', (self.GetParameter (' ruoli '),))})' ha non è stato correttamente
L'errore di origine non aiuta molto, purtroppo:
Linea 15: uscita FormHelper.TextField ( "user.Role", { "classe": "text-input di grande ampiezza"}) Linea 16: uscita """ Linea 17: """ Linea 18: uscita FormHelper.Select ( "user.Role", $ {LS.EnumToPairs (ruoli)}, { "valore": "In primo luogo", "testo": "Secondo"}) Linea 19: uscita "" "
Tutte le idee che cosa sto facendo male qui?
Modifica
In base alla risposta data al di sotto, la soluzione è stata finalmente questo:
${FormHelper.Select("user.Role", LS.EnumToPairs(Roles), {"value":"First","text":"Second"})}
dove i ruoli era PropertyBag["Roles"] = typeof(Role);
Soluzione
Prova questo:
${FormHelper.Select("user.Role", LS.EnumToPairs(typeof(Roles)), {"value":"First", "text":"Second"})}