5

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

如果我有这样的模型:

public class AccountViewModel {             

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

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

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

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

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

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

我需要自己构建选择标签吗?如果是这样,推荐的方法是什么?

4

1 回答 1

10

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

当您在问题中涉及到攻击此问题的正确方法时,可能会使用 HTML 约定以及 HtmlTags 库,例如FubuMVC.Recipes示例“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 存储库是相当新的并且仍在增长,因此可能有一些更好的示例,但希望这能给您一些想法。

于 2012-01-10T22:26:25.720 回答