gpt4 book ai didi

c# - MVC3 局部 View 和模型不回发更改

转载 作者:可可西里 更新时间:2023-11-01 09:13:11 26 4
gpt4 key购买 nike

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

我使用分部 View 呈现集合,分部 View 又使用 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" />
}

局部 View

@model IEnumerable<Footy.Models.PlayerModel>
@Html.EditorForModel()

玩家模型 View

@model Footy.Models.PlayerModel

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

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

我错过了什么?

编辑:生成的 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

最佳答案

如果您检查呈现的源,您能否检查呈现的子模型输入的名称和 ID 是否与模型层次结构相对应?

我相信您将需要 EditorFor 以便子模型被正确地“命名空间”。

所以在 EventModel View 中,使用如下内容:

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

不过我不确定。我在使用 MVC 框架时遇到过类似的问题。

关于c# - MVC3 局部 View 和模型不回发更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7687592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com