私は、変更可能なアイテムのコレクションを含むモデルを持っています。MVC3部分的なビューとモデルが変更をポストバックしない
パーシャルビューを使用してコレクションをレンダリングします。パーシャルビューは、EditorForModelを使用して、コレクション内の各要素のHTMLを出力します。
@model Footy.Models.EventModel
<h2>@Model.Team1Name vs @Model.Team2Name</h2>
@using (Html.BeginForm("Index", "Event"))
{
@Html.HiddenFor(m => m.EventID)
<h1>
Team 1 Squad</h1>
@Html.Partial("EventPlayers", Model.Team1Players);
<h1>
Team 2 Squad</h1>
Html.RenderPartial("EventPlayers", Model.Team2Players);
<input type="submit" value="Confirm Changes" />
}
部分図
@model IEnumerable<Footy.Models.PlayerModel>
@Html.EditorForModel()
PlayerModelビュー
@model Footy.Models.PlayerModel
@Model.PlayerName @Html.DropDownListFor(p => p.ParticipationStatusID, new SelectList(Model.ParticipationTypes, "Key", "Value"))
それはすべてが正しくレンダリングが、ユーザが入力をクリックしたときに、コントローラのメソッドをモデルに子コレクションが渡されていません、例えばModel.Team1Players is null
私は何が欠けていますか?
EDIT:生成されたHTMLはまだ答えていない
<form action="/Footy/Event/Index/1" method="post"><input data-val="true" data-val-number="The field EventID must be a number." data-val-required="The EventID field is required." id="EventID" name="EventID" type="hidden" value="1" />
<h1>Team 1 Squad</h1>
si <select data-val="true" data-val-number="The field ParticipationStatusID must be a number." data-val-required="The ParticipationStatusID field is required." name="[0].ParticipationStatusID"><option value="1">Team</option>
<option value="2">Sub</option>
<option value="3">Squad</option>
</select>
<h1>Team 2 Squad</h1>
<input type="submit" value="Confirm Changes" />
</form>
おかげ
私はそれがこの質問に関連していると考え、次のとおりです。あなたがレンダリングされたソースを検査した場合Posting data back to a controller from a Partial View rendered by Ajax
あなたのブラウザでこのページを表示し、生成されたHTMLを表示することができますか? – Carsten