私の ASP MVC ビューでは、アカウント番号を使用して、SQL テーブルから姓を取得します。ユーザーがアカウント番号を入力し、タブでフィールドの外に出ると、Ajax 呼び出しがサーバーに送り返され、DisplayFor
フィールドに値を入力することになっています。ただし、このコードは、div
要素id
に を指定し、Ajax 呼び出しを使用して を の に配置したLastName
場合にのみ機能.text()
しdiv
ます。ただし、何らかの理由で、LastName
コントローラーに送り返されたときの値はnull
.
以下のコード (書かれているはずですが..ほとんど何もしていません。名前は取得されますが、DisplayFor
フィールドには追加されません。また、フォームが送信されるLastName
と、モデル オブジェクトの値はnull
.上で述べたように、div
anid
を与えLastNameDisplay
て ajax success
functionに含めると$('#LastNameDisplay').text(data)
、姓が に追加されて表示されdiv
ますが、それでも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>