单轨选择使用枚举(MonoRail Select Using Enum)

2019-10-29 08:25发布

我一直在关注这个指南 ,为了使用单轨的未来与我自己的药汁FormHelper.Select是从一个枚举产生。 因此,这里的盲文语法:

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

“LS”只是我自己的助手,我已经定义如下:

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

然而,从这个,尽管是正确的语法,我得到以下错误:

节点 '$({返回Castle.MonoRail.Views.Brail.ExpandDuckTypedExpressions_WorkaroundForDuplicateVirtualMethods.Invoke(self.GetParameter(' LS '), 'EnumToPairs',(self.GetParameter(' 角色 ')))})' 一直没有正确

源错误没有太多帮助不幸的是:

第15行:输出FormHelper.TextField( “user.Role”,{ “类”: “文本输入全角”})线16:输出 “” “行17: ”“” 行18:输出FormHelper.Select( “user.Role” $ {LS.EnumToPairs(角色)},{ “值”: “第一”, “文”: “二”})第19行:输出 “””

任何想法,我做错了什么?

编辑

基于下面给出了答案,该解决方案终于这样的:

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

其中角色是PropertyBag["Roles"] = typeof(Role);

Answer 1:

尝试这个:

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


文章来源: MonoRail Select Using Enum