2012-01-10 5 views
5

コレクションをドロップダウンリストとしてレンダリングする方法を理解できません。私はのようなモデルを持っている場合はfubumvc - コレクションをドロップダウンリストとしてレンダリングする

public class AccountViewModel {    

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

私はドロップダウンリストとして表示する文字列のコレクションをしたいと思います。

htmlページヘルパーInputForを使用しても動作しないようです。これは単にテキストボックスをレンダリングします。

私は、InputForがプロパティの種類を反映し、それに応じてHTMLをレンダリングできることに気付きました。ブール値フィールドのチェックボックスと同様です。

また、FubuPageExtensionsにはCheckBoxForおよびTextBoxForのメソッドがありますが、DropDownListForとは何も関係ありません。

私は恐らくfubuのhtml慣習を理解する上で非常に基本的なものを見逃しています。

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

答えて

10

あなたは正しいです(私が最後に見た時点で)HtmlTags libraryを使用してコードを介して選択タグを生成することができますが、選択タグを生成するための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リポジトリは非常に新しく、まだその周りにいくつかのより良い例があるかもしれ成長しているが、これはあなたにいくつかのアイデアを与える願っています:

は、例えば列挙生成例があるかもしれません。

関連する問題