MVC3部分视图和模型不回发更改

我有一个模型,包含一组可以修改的项目。

我使用Partial View渲染集合,而Partial View又使用EditorForModel为集合中的每个元素输出HTML。

@model Footy.Models.EventModel 

@Model.Team1Name vs @Model.Team2Name

@using (Html.BeginForm("Index", "Event")) { @Html.HiddenFor(m => m.EventID)

Team 1 Squad

@Html.Partial("EventPlayers", Model.Team1Players);

Team 2 Squad

Html.RenderPartial("EventPlayers", Model.Team2Players); }

部分视图

 @model IEnumerable @Html.EditorForModel() 

PlayerModel查看

 @model Footy.Models.PlayerModel @Model.PlayerName @Html.DropDownListFor(p => p.ParticipationStatusID, new SelectList(Model.ParticipationTypes, "Key", "Value")) 

这一切都正确呈现,但是当用户单击输入时,控制器方法不会传递模型中的子集合,例如Model.Team1Players为null

我错过了什么?

编辑:生成的HTML是

  

Team 1 Squad

si Team Sub Squad

Team 2 Squad

谢谢

我认为它与这个问题有关,它还没有答案: 从Ajax呈现的部分视图将数据发回控制器

如果检查渲染的源,是否可以检查渲染的子模型输入的名称和ID是否与模型层次结构相对应?

我相信您需要EditorFor才能使子模型正确“命名空间”。

所以在EventModel视图中,使用以下内容:

 @Html.EditorFor(m => m.Team1Players, "EventPlayers") 

不过我不确定。 我在MVC框架方面遇到了类似的问题。

也许问题出在集合绑定中。

试试看这篇文章 。 它应该为您提供有关集合绑定的一些见解