【问题标题】:fubumvc - rendering a collection as a drop down listfubumvc - 将集合呈现为下拉列表
【发布时间】:2012-02-07 07:44:11
【问题描述】:

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

如果我有这样的模型:

public class AccountViewModel {             

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

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

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

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

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

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

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

【问题讨论】:

    标签: c# fubumvc


    【解决方案1】:

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

    当您在问题中涉及到攻击此问题的正确方法时,可能会使用 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-02-27
      • 2011-09-11
      • 2019-12-04
      • 2017-09-05
      • 2018-08-08
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 2023-03-29
      相关资源
      最近更新 更多