2 votes

ASP.NET MVC JSON Entity Framework - Enregistrer les données

Je possède une application asp.net MVC3, essayant de sauvegarder des données dans une table MS SQL (Entity Framework).
Voici la table:

public class CasesProgress
    {
        public virtual long ID { get; set; }
        public virtual long Learner_ID { get; set; }
        public virtual long Course_ID { get; set; }
        public virtual long StudyCase_ID { get; set; }
        public virtual long CaseList_ID { get; set; }
        public virtual bool Viewed { get; set; }
    }

Voici mon contrôleur:

public ActionResult StoreProgress(long Learner_ID, long Course_ID, long StudyCase_ID, long CaseList_ID)
    {
        CasesProgress casesprogress = new CasesProgress();
        casesprogress.Learner_ID = Learner_ID;
        casesprogress.Course_ID = Course_ID;
        casesprogress.StudyCase_ID = StudyCase_ID;
        casesprogress.CaseList_ID = CaseList_ID;
        casesprogress.Viewed = true;
        db.CasesProgresses.AddObject(casesprogress);
        db.SaveChanges();
        return Json(new { success = true });
    }

et voici mon Javascript:

   function StoreProgress1() {
        $.ajax({
            url: '/Home/StoreProgress',
            type: 'POST',
            data: {
                LearnerID: "211",
                Course_ID: "6",
                StudyCase_ID: "19",
                CaseList_ID: "2"
            },
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                alert(data.success);
            },
            error: function () {
                alert("error");
            }
        });
    }

Je reçois un message d'erreur sans même atteindre le point d'arrêt que j'ai dans le contrôleur. Une idée, je suis nouveau dans ce domaine. Merci d'avance.

3voto

webdeveloper Points 8205

Essayez de changer :

LearnerID: "211"

À (comme dans le modèle) :

Learner_ID: "211"

1voto

hncl Points 591

Le problème était dans cette ligne :

contentType: 'application/json; charset=utf-8',

Je l'ai supprimé et ça a fonctionné. Merci pour toutes les réponses.

0voto

vittore Points 8364

En plus des réponses ci-dessus, vérifiez que vous avez l'attribut [HttpPost] appliqué à votre action.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X