J'ai un comportement incohérent avec un appel Ajax.ASP.NET MVC 3 - Comportement des résultats JSON incohérent
Controller ...
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);
}
Lorsqu'un utilisateur entre un ID d'employé qui n'est pas reconnu, je retourne un objet employé qui a toutes les valeurs de « Unknown ». Cela fonctionne bien. Toutefois, lorsque l'ID employé entré correspond à un résultat dans la base de données, pour une raison quelconque, la condition "else" n'est pas atteinte, bien que l'objet JSON d'un employé soit correctement renvoyé à la vue.
Voir ...
$('#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);
}
});
});
Par le débogage, je sais le résultat JSON est retourné à la vue. J'ai utilisé ce même algorithme dans une autre application (qui utilise exactement la même base de données), et cela fonctionne très bien. Je ne sais pas comment résoudre ce problème. Toute suggestion ou recommandation serait grandement appréciée. Je vous remercie.
échantillon de votre JSON ?? –