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);

È stato utile?

Soluzione

Prova questo:

${FormHelper.Select("user.Role", LS.EnumToPairs(typeof(Roles)), {"value":"First", "text":"Second"})}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top