我束手无策,需要一些指示在哪里看。
我有一个 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请求的返回在浏览器中显示(错误地),所以错误发生在服务器端。仍然 - 当我调试列表框中的输入时,它读取正确。