2010-11-24 13 views
1

私の答えは、何とかIDictionaryプロパティをラムダ式を使用してバインドすることができますか?単純なプロパティのMVC 2で行われましたか?lambdaを使ってIDictionaryをバインドすることは可能でしょうか?

私は、文字列プロパティパス経由で古いMVC表記を使ってIDictionaryをバインドする方法を知っています。しかし、残りのすべてのアプリケーションは、ラムダ式を使用して新しいMVC 2アプローチを使用して動作します。したがって、私はモデルバインディングの古い方法を適用することを非常に気に入らないでしょう。

私はまた、彼のブログにPhil Haackによって投稿された記事Model Binding To A Listを見ました。しかし、この記事でPhilはDicrionariesではなく、Listsのためだけにlambdaを使ってバインディングを行う方法を示しています。 Dictionary型のプロパティと同様の処理を試みましたが、DefaultModelBinderはそれらを認識しません。

例:

結合である:

<%= Html.TextBoxFor(model => model.DictionaryProperty[key].Title)%> 

レンダリングされたHTMLは次のとおりです。

<input id="DictionaryProperty_one__Title" name="DictionaryProperty[one].Title" type="text" value="" /> 

私は、任意の有用なアドバイスのためにappeciatedされるだろう。

UPD:上記の辞書プロパティのインデックスが指定された、コースの:

ビュー:

<%= Html.Hidden("DictionaryProperty.index",key)%> 

レンダリングされたHTML:

<input id="DictionaryProperty_index" name="DictionaryProperty.index" type="hidden" value="one" /> 

答えて