だからこれを想像してください:
ビューがあります。次の形式で、このビューを持つモデルがあります。
Id
List<Food>
各食品には、次のものがあります。
Id
Name
List<Ingredients>
各成分には以下が含まれます:
Id
Name
Qty
これは1モデルです。
このモデルを取り込むビューがあります。次に、リストを取得して画面にレンダリングする部分ビューを作成します。これは機能しますが、フォームが送信されると (ボタンはメイン ビューにあります)、データはバインドに失敗するか、モデルに表示されません。
データをバインドできる正しい方法は何ですか?
全体を取り出してメインビュー自体に配置すると機能しますが、再利用性の理由から、部分ビューにするのが理にかなっているので、任意のページに「ドロップ」してデータを渡すことができます。
部分ビューには次のものが含まれます。
@model List<FoodProject.Web.Models.FoodViewModel>
ありがとう
アップデート
EditorTemplate を使用してみましたが、Html.Partial を使用する前と同様に、モデル バインディング規則をほぼ尊重しているようです。それは次のようなものを生み出していました:
[0].PropertyName
それ以外の:
ModelName[0].PropertyName
テンプレート エディターはほとんどありますが、次のように表示されます。
ModelName.[0].Id
これが、投稿時にモデルコレクションに null が返される理由だと思いますが、モデルバインディングを尊重するにはどうすればよいですか? どこが間違っているのですか?