0

これがバグなのか機能なのかはわかりません。いくつかの文字列プロパティを持つ ListRequest オブジェクトを受け取るアクション パラメータがあります。.NET MVC は、同じ名前のクエリ文字列パラメーターを ListRequest オブジェクトのプロパティに忠実にマップします。

クエリ文字列から取得した文字列のリストである ListRequest.Filters プロパティを追加します: ?filter=foo&filter=bar

.Filters を List(Of String) 型の Get/Set として宣言すると、DefaultModelBinder は期待どおりの動作をします。ただし、代わりに IList(Of String) の Get/Set として .Filters を宣言すると、DefaultModelBinder はそのプロパティへの値のバインドを完全に停止します。

これは機能ですか、それともバグですか?

4

1 に答える 1

0

私には機能のように聞こえます。モデル バインダーには、バインド先の具象型が必要です。

インターフェイスにバインドするように指示した場合、バインドするインターフェイスをインスタンス化できないため、何もできません。

編集:興味深い

ソース コードから判断すると、IEnumerable、ICollection、IList、または IDictionary のジェネリック型であるモデルにバインドされるようですが、ジェネリック型のモデルのプロパティにはバインドされません。

だから私はそれがバグだとは言いません...彼らが見落とした機能だとだけ言いたいです. :-)

于 2009-09-24T20:20:08.697 に答える