我在智慧结束时,需要一些指针去寻找。
我有一个MVC Ajax表单如下:
<div id="totalPartial">
<table>
@foreach (Application application in Model.Applications)
{
<tr>
<td>
@Html.DisplayFor(m => application.Candidate.Client.ClientName)
</td>
<td>
@Html.DisplayFor(m => application.Candidate.FirstName)
</td>
<td>
@Html.DisplayFor(m => application.Test.TestName)
</td>
<td>
@{ Model.SelectedSession = application.Session; }
@using (Ajax.BeginForm("Plan", "Keuring",
new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "totalPartial",
HttpMethod = "POST"
},
new {id = "form" + application.Id, name = "form" + application.Id}))
{
@Html.HiddenFor(m => application.Id)
@Html.DropDownListFor(m => application.Session.Id, Model.SessionsInclNotPlanned, new {@class = "sessiondropdown", onchange = "$(this.form).submit()"})
}
</td>
</tr>
}
</table>
</div>
每次在迭代时添加表行时,都会生成一个下拉列表,并选择相关的会话。作为魅力 - 最初加载时。
当用户选择不同的会话时,会有一个ajax调用来替换当前表(因此更新totalPartial)。与捕获一起使用。 在此回发中,所有下拉框中的选定值与所选下的值相同(它们应保留自己的值)。所选值在方法中有效设置:
@{ Model.SelectedSession = application.Session; }
Model.SessionsInclNotPlanned
完全重新加载 - 它再次作为魅力。就在这个Ajax-回发中,启动选择会在所有列表框中传播......
在哪里看?我检查了fiddler,并且Ajax请求的返回在浏览器中显示(错误地),因此错误发生在服务器端。仍然 - 当我调试列表框中的输入时,它会正确读取。