5

コレクションをドロップダウン リストとして表示する方法がわかりません。

次のようなモデルがある場合:

public class AccountViewModel {             

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

文字列コレクションをドロップダウン リストとしてレンダリングしたいと考えています。

HTML ページ ヘルパー InputFor を使用しても機能しないようです。テキストボックスをレンダリングするだけです。

InputFor がプロパティの型を反映し、それに応じて html をレンダリングできることに気付きました。(ブール値フィールドのチェックボックスのように)。

また、FubuPageExtensions には CheckBoxFor と TextBoxFor のメソッドがありますが、DropDownListFor に相当するものはありません。

fubu の html 規則を理解する上で、かなり基本的なことが欠けている可能性があります。

select タグを自分で作成する必要がありますか? もしそうなら、それを行うための推奨されるアプローチは何ですか?

4

1 に答える 1

10

HtmlTagsライブラリを使用してコードを介して選択タグを生成することはできますが、選択タグを生成するためのFubuMVC.Core HTML拡張メソッドがないことは(私が最後に見た時点では)正しいです。

質問で触れたように、これを攻撃する正しい方法は、 FubuMVC.Recipesの例「src/UI/HtmlConventionsWithPageExtensions」で示されているような HtmlTags ライブラリと一緒に HTML 規則を使用する可能性があります。

たとえば、列挙型生成の例は次のようになります。

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 に答える