向数据库添加新行时出错

时间:2016-12-20 06:03:19

标签: jquery ajax asp.net-mvc entity-framework-6

我试图在保存按钮单击事件时将数据保存到数据库,但在存储库代码中收到错误,如下所示。请帮我解决这个问题。

这是我的list.cshtml代码:

    var saveTrainingProgram = function () {
    console.log('in save');

    $.ajax({
        url: '/Affiliate/TrainingProgram/Save',
        type: 'POST',
        data: {
            trainingProgramName: ff.trainingProgramName.val(),
            colorCode: ff.colorCode.val()
        }
    }).done(function (response) {
        if (response.status === 'success') {

            var html = buildEntryHtml(entry, (trainingProgramId == 0));
        } else {

        }
    }).fail(function (jqXHR, textStatus) {

        $.isLoading('hide');
    });

    clearForm();
};

var clearForm = function () {
    el.addForm.find('.form-control input').val();
    el.addForm.find('select training-program-name').prop('selected', true).trigger('change');
    // clear if Validation errors exist.
    trainingProgramValidator.resetForm();
};

控制器:

[HttpPost]
[Authorize(Roles = "Affiliate")]
public ActionResult Save(string trainingProgramName, stringcolorCode)
{
    CbJsonResponse response = new CbJsonResponse();
    int errorCount = 0;
    List<string> errorMessages = new List<string>(5);


    if (string.IsNullOrEmpty(trainingProgramName))
    {
        errorCount++;
        errorMessages.Add("Error: The Training Program Name is required.");
    }

    if (string.IsNullOrEmpty(colorCode))
    {
        colorCode = CbConstants.TrainingProgramDefaultColorCode;
    }

    if (errorCount == 0)
    {
        Entities.TrainingProgram trainingProgram = new Entities.TrainingProgram();
        trainingProgram.Name = trainingProgramName;
        trainingProgram.ColorCode = colorCode;

        if (TrainingProgramRepository.Instance.SaveTrainingProgram(trainingProgram))
        {
            response.Status = "success";
            TrainingProgramListEntry listEntry = new TrainingProgramListEntry()
            {
                ID = trainingProgram.ID,
                Name = trainingProgram.Name,
                ColorCode = trainingProgram.ColorCode
            };

            // Include the list entry in the response.
            response.Data.Add(listEntry);
        }
    }
    else
    {
        response.Status = "failure";
        response.Meta.Add("errorCount", Convert.ToString(errorCount));
        response.Data.Add(errorMessages);
    }

    return Json(response, "application/json", System.Text.Encoding.UTF8, JsonRequestBehavior.AllowGet);
}

存储库:

public bool SaveTrainingProgram(TrainingProgram trainingProgram)
{
    bool retVal = false;
    using (var ctx = new CrossfitPortalEntities())
    {

        try
        {
            ctx.TrainingPrograms.Add(trainingProgram);
            retVal = (ctx.SaveChanges() > 0);
        }
        catch (Exception ex)
        {
            logger.Debug("Unable to save training program.", ex);
        }
    }
    return retVal; // retVal should be true but it is false
}

0 个答案:

没有答案