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是
谢谢
我认为它与这个问题有关,它还没有答案: 从Ajax呈现的部分视图将数据发回控制器
如果检查渲染的源,是否可以检查渲染的子模型输入的名称和ID是否与模型层次结构相对应?
我相信您需要EditorFor
才能使子模型正确“命名空间”。
所以在EventModel视图中,使用以下内容:
@Html.EditorFor(m => m.Team1Players, "EventPlayers")
不过我不确定。 我在MVC框架方面遇到了类似的问题。
也许问题出在集合绑定中。
试试看这篇文章 。 它应该为您提供有关集合绑定的一些见解