0

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

下面的代码(正如它应该写的那样......几乎什么都没有。它会检索名称,但不会将其附加到DisplayFor字段中。此外,当提交表单时,LastName模型对象上的值为null.就像我上面提到的,如果我给出divan idof LastNameDisplay,并包含在 ajaxsuccess函数$('#LastNameDisplay').text(data)中,last name 将自己附加到divand 是可见的,但仍会将null值发送回控制器。

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

jQuery

    $('#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>

生成的 HTML

<div class="M-editor-label">
    <label for="AccountNumber">Account Number</label>
    <span class="req">*</span>
</div>
<div class="M-editor-field">
    <input id="AccountNumber" maxlength="9" name="AccountNumber" title="Enter 9 digit account" type="text" value="019000109" />
</div>
<div class="M-editor-label">
    <label for="LastName">Last Name</label>
</div>
<div class="M-editor-field">
    <input id="LastName" name="LastName" style="display:none;" type="text" value="" />

</div>
4

0 回答 0