0

最近、ASP.NET MVCアプリケーション(Firefox + Firebug)をデバッグしていて、興味深い(私にとって)シナリオに遭遇しました。期待どおりにすべてのGETリクエストがクエリ文字列でパラメーターを渡し、ほとんどのPOSTリクエストはフォームに入力を投稿するだけでした。クエリ文字列パラメータとフォーム入力の両方を混合したPOSTリクエストがいくつかありました。

興味深いことに、MVCモデルバインダーは、クエリ文字列と投稿されたパラメーターの組み合わせからモデルを構築するのにまったく問題がありませんでした。これは、ASP.NET MVCおよびHTTPで有効で受け入れられているパターンですか、それともモデルバインダーのフォールトトレラントな実装ですか?

4

1 に答える 1

2

これは仕様によるものです。デフォルトのMVCモデルバインダーは、URI(クエリ文字列やルートデータ)と本文の両方からモデルパラメーターを一致させようとします。

もちろん、動作が異なる独自のモデルバインダーを実装することもできます。

ちなみに、ASP.NET Web APIでは、この動作はもはやそのようではなく、URIと本体のパラメーターが混在していません。

于 2013-01-13T19:40:33.757 に答える