Question

J'ai ce guide et à venir avec ma propre concoction afin d'utiliser le FormHelper.Select de monorail qui est généré à partir d'un ENUM. Voici donc la syntaxe Brail:

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

« LS » est juste mon propre aide, que je l'ai défini comme suit:

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

Et pourtant de cela, en dépit d'être la syntaxe correcte, je reçois l'erreur suivante:

  

Noeud '$ ({return Castle.MonoRail.Views.Brail.ExpandDuckTypedExpressions_WorkaroundForDuplicateVirtualMethods.Invoke (self.GetParameter (' LS '), 'EnumToPairs', (self.GetParameter (' rôles '),))})' a pas été correctement

L'erreur source ne nous aide pas beaucoup, malheureusement:

  

Ligne 15: Sortie FormHelper.TextField ( "user.Role", { "class": "text-input-largeur"})   Ligne 16: sortie « » »   Ligne 17: "" »   Ligne 18: FormHelper.Select de sortie ( "user.Role", $ {LS.EnumToPairs (rôles)}, { "valeur": "d'abord", "texte": "Second"})   Ligne 19: sortie "" "

Toutes les idées ce que je fais mal ici?

EDIT

D'après la réponse donnée ci-dessous, la solution a finalement ceci:

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

où les rôles était PropertyBag["Roles"] = typeof(Role);

Était-ce utile?

La solution

Essayez ceci:

${FormHelper.Select("user.Role", LS.EnumToPairs(typeof(Roles)), {"value":"First", "text":"Second"})}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top