我的 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 与数据库中的结果匹配时,由于某种原因,“else”条件未达到——尽管员工 Json 对象已成功返回到视图中。
看法...
$('#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结果正在返回给View。我在另一个应用程序(使用完全相同的数据库)中使用了相同的算法,并且效果很好。我不知道如何解决这个问题。任何建议或建议都将受到极大重视。谢谢你。