Ajax 呼び出しの動作に一貫性がありません。
コントローラ...
public JsonResult checkWwid(string wwid)
{
EMPLOYEE employee = db.EMPLOYEES.SingleOrDefault(e => e.ID == wwid.ToUpper());
if (employee != null)
{
return Json(employee, JsonRequestBehavior.AllowGet);
}
employee = new EMPLOYEE();
employee.ID = "Unknown";
employee.NAME = "Unknown";
employee.ORGANIZATION_ID = "Unknown";
employee.WORK_SITE_ID = "Unknown";
return Json(employee, JsonRequestBehavior.AllowGet);
}
ユーザーが認識されていない従業員 ID を入力すると、すべての値が「不明」の従業員オブジェクトが返されます。これはうまくいきます。ただし、入力された従業員 ID がデータベースの結果と一致する場合、従業員の Json オブジェクトが正常にビューに返されているにもかかわらず、何らかの理由で「else」条件に到達しません。
意見...
$('#Wwid').change(function () {
$("#wwid_alert").hide();
var selectedWwid = $(this).val();
$.getJSON('@Url.Action("checkWwid")', { wwid: selectedWwid }, function (employee) {
alert(employee.NAME);
if (employee.ID == 'Unknown') {
alert(employee.NAME);
$("#wwid_alert").show();
$("#wwid_alert").text("This WWID is not in the database; you will not be able to sucessfully submit this form.");
} else { // This is not working even though I am getting a JSON result.
alert(employee.NAME);
$("#wwid_alert").show();
$("#wwid_alert").text(employee.NAME);
}
});
});
デバッグを通じて、Json の結果がビューに返されていることがわかりました。これと同じアルゴリズムを別のアプリケーション (まったく同じデータベースを使用するアプリケーション) で使用しましたが、問題なく動作します。これを解決する方法がわかりません。提案や推奨事項は非常に高く評価されます。ありがとうございました。