在我的 ASP MVC 视图中,我们使用帐号从 SQL 表中提取姓氏。一旦用户在字段中输入帐号和标签,Ajax 调用就会被发送回服务器,并且应该将值输入到DisplayFor
字段中。但是,此代码仅在我给div
元素一个时才有效,id
然后使用 Ajax 调用LastName
将.text()
. div
但是,无论出于何种原因,LastName
当发送回控制器时,该值是null
.
下面的代码(正如它应该写的那样......几乎什么都没有。它会检索名称,但不会将其附加到DisplayFor
字段中。此外,当提交表单时,LastName
模型对象上的值为null
.就像我上面提到的,如果我给出div
an id
of LastNameDisplay
,并包含在 ajaxsuccess
函数$('#LastNameDisplay').text(data)
中,last name 将自己附加到div
and 是可见的,但仍会将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>