将集合呈现为下拉列表

本文关键字:下拉列表 集合 | 更新日期: 2023-09-27 18:20:07

我很难理解如何将集合呈现为下拉列表。

如果我有一个模型像:

public class AccountViewModel {             
    public string[] Country { get; set; }
}

我希望字符串集合呈现为下拉列表。

使用html页面帮助程序InputFor似乎不起作用。它只是呈现一个文本框。

我注意到InputFor可以反映属性类型并相应地呈现html。(类似于布尔字段的复选框)。

我还注意到FubuPageExtensions有CheckBoxFor和TextBoxFor的方法,但没有等效于DropDownListFor的方法。

在理解fubu中的html约定时,我可能遗漏了一些非常基本的东西。

我需要自己构建select标签吗?如果是,建议采用什么方法?

将集合呈现为下拉列表

您是正确的,(在我上次查看时)没有用于生成选择标记的FubuMVC.Core HTML扩展方法,尽管您可以使用HtmlTags库通过代码生成选择标记。

当你在问题中谈到攻击这一问题的正确方法时,可能是使用HTML约定和HtmlTags库,如FubuMVC中演示的库。配方示例"src/UI/HtmlConventionsWithPageExtensions"。

例如,枚举生成示例可能是:

this.Editors
    .If(e => e.Accessor.PropertyType.IsEnum)
    .BuildBy(er =>
    {
        var tag = new HtmlTag("select");
        var enumValues = Enum.GetValues(er.Accessor.PropertyType);
        foreach (var enumValue in enumValues)
        {
            tag.Children.Add(new HtmlTag("option").Text(enumValue.ToString()));
        }
        return tag;
    });

FubuMVC.Recipes存储库是一个全新的存储库,而且还在不断发展,所以可能会有一些更好的例子,但希望这能给你一些想法。