ProductListingViewModel型の強く型付けされたビューがあり、これにはProductViewModelが含まれています。(両方のカスタムビューモデル)。
ページにいくつかのフォーム要素があり、これらは次のように作成されます。
<%: Html.DropDownListFor(m => m.ProductViewModel.CategoryId, Model.Categories)%>
HTMLを生成します:
<select name="ProductViewModel.CategoryId" id="CategoryId">
デフォルトのモデルバインディングでは、ProductListingViewModelタイプのパラメーターを受け入れるコントローラーアクションに投稿するときに、ProductViewModel.CategoryIdに関連データを入力することがわかっていると予想していました。
選択リストの名前は、CategoryIdプロパティを持つProductViewModelがあることを示しているようですが、コントローラーメソッドに投稿すると、ProductViewModelがnullになります。ProductListingViewModelの構築中にこれを作成すると、nullではなくなりますが、デフォルトのバインダーが期待どおりにプロパティに入力されていないようです。
これはカスタムモデルバインダーの場合ですか、それとも基本的なものが欠けているだけですか?
乾杯。