Ajax调用不附加到DisplayFor并将空值发送回控制器

时间:2013-08-16 21:38:22

标签: jquery ajax asp.net-mvc asp.net-mvc-3

在我的ASP MVC视图中,我们使用帐号从SQL表中提取姓氏。一旦用户从字段中输入帐号和标签,就会将Ajax调用发送回服务器,并将该值输入DisplayFor字段。但是,此代码仅在div元素为id时才有效,然后使用Ajax调用将LastName放入.text()的{​​{1}} 。但无论出于何种原因,div值在发送回控制器时为LastName

下面的代码(因为它应该写得很好......几乎没有。它将检索名称,但它不会将其附加到null字段。此外,当提交表单时,模型对象上DisplayFor的值为LastName。就像我上面提到的,如果我给null div id,并包含在ajax中LastNameDisplay函数success,姓氏将附加到$('#LastNameDisplay').text(data)并且可见,但仍然会将div值发送回控制器。

这应该是一个非常简单的操作,我在本网站的其他几页上完成的操作。知道这里出了什么问题吗?

的jQuery

null

HTML /剃须刀

    $('#AccountNumber').on("blur", function () {
        $.ajax({
            type: 'GET',
            url: '@Url.Action("GetLastName", "Agent")',
            data: { account: $(this).val() },
            success: function (data) {
                $('#LastName').val(data);
                $('#LastName').text(data);
            }
        });
    });

生成的HTML

                    <div class="M-editor-label">
                        @Html.LabelFor(model => model.AccountNumber)
                        <span class="req">@Html.Raw("*")</span>
                    </div>
                    <div class="M-editor-field">
                        @Html.TextBoxFor(model => model.AccountNumber, new { maxlength = 9, title = "Enter 9 digit account number" })
                    </div>

                    <div class="M-editor-label">
                        @Html.LabelFor(model => model.LastName)
                    </div>
                    <div class="M-editor-field">
                        @Html.TextBoxFor(model => model.LastName, new { style="display:none;" })
                        @Html.DisplayFor(model => model.LastName)
                    </div>

0 个答案:

没有答案