1

我束手无策,需要一些指示在哪里看。

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

4

0 回答 0