Je travaille actuellement sur un projet dans ASP.NET MVC4 avec framework d'entité. Voici le problème, je voudrais que mon code renvoie un objet Json différent selon que le Db.savechanges a fonctionné ou non! J'ai fait un peu de débogage avec la console et il semble que je reçois toujours faux de l'autre partie de mon IF et il ne va jamais dans la condition réelle, même si la condition est ok. Difficile à expliquer, mais facile à comprendre avec le code alors voilà.ASP.NET MVC4 Entity Framework db.SaveChanges() La condition ne fonctionne pas
code de mon contrôleur envoyer objet JSON Vrai ou faux à mon javascript
[HttpPost]
public ActionResult Enregistrer_Inscription(InscriptionPost inscPost)
{
NoirEtOrEntities db = new NoirEtOrEntities();
Inscription insc = new Inscription()
{
inscriptionNom = inscPost.nomJ,
inscriptionPrenom = inscPost.prenomJ,
inscriptionDateNaissance = inscPost.DateNaissance,
inscriptionDate = DateTime.Now,
inscriptionCategory = inscPost.Category,
inscriptionDivision = inscPost.Division,
inscriptionStatut = inscPost.Statut,
inscriptionTaille = inscPost.Taille,
inscriptionSexe = inscPost.Sexe,
inscriptionEcole = inscPost.Ecole,
inscriptionAgeSept = inscPost.AgeSept,
inscriptionNiveauScolaire = inscPost.NiveauScolaire,
inscriptionAdresseJ = inscPost.AdresseJ,
inscriptionVilleJ = inscPost.VilleJ,
inscriptionCodePostalJ = inscPost.CodePostalJ,
inscriptionCourrielJ = inscPost.CourrielJ,
inscriptionTelephoneJ = inscPost.TelephoneJ,
inscriptionNomP = inscPost.nomP,
inscriptionPrenomP = inscPost.prenomP,
inscriptionAdresseP = inscPost.AdresseP,
inscriptionVilleP = inscPost.VilleP,
inscriptionCodePostalP = inscPost.CodePostalP,
inscriptionCourrielP = inscPost.CourrielP,
inscriptionTelephoneP = inscPost.TelephoneP,
inscriptionNomM = inscPost.nomM,
inscriptionPrenomM = inscPost.prenomM,
inscriptionAdresseM = inscPost.AdresseM,
inscriptionVilleM = inscPost.VilleM,
inscriptionCodePostalM = inscPost.CodePostalM,
inscriptionCourrielM = inscPost.CourrielM,
inscriptionTelephoneM = inscPost.TelephoneM,
inscriptionNotes = inscPost.Notes,
};
try
{
db.Inscription.Add(insc);
db.SaveChanges();
if (db.SaveChanges() > 0)
{
return Json(new { success = true });
}
else
{
return Json(new { success = false });
}
}
catch (System.Data.Entity.Validation.DbEntityValidationException ex)
{
return Json(new { success = false });
}
}
}
Voici mon code Jquery
success: function (data) {
console.log(data);
console.log(data.success);
if (data.success == true) {
console.log("succ");
console.log(data);
alertify.success("Formulaire recu avec succès", 5000);
Vider_Champs()
}
else {
console.log("nope");
console.log(data);
alertify.error("Le formulaire comporte des erreurs", 5000);
}
},
error: function() {
console.log("error");
alertify.error("Le formulaire comporte des erreurs", 5000);
}
});
}
Le problème est le code: if (db.SaveChanges() > 0)
Merci pour votre aide
juste essayé et sa ne fonctionne pas! ne va toujours pas dans le SI, il le dépasse et retourne faux à partir de l'autre – JeffLA
@JeffLA Etes-vous sûr qu'il fonctionne dans une autre instruction? Un autre cas où false est renvoyé est quand 'DbEntityValidationException' est levé pendant la méthode de sauvegarde appelez – dotnetom
votre droit! c'est à cause de cette exception! mais je ne comprends pas vraiment – JeffLA