首页 > 解决方案 > 将 Jquery POST 插入控制器/SQL 数据库时出错

问题描述

我正在尝试将来自 jquery POST 到控制器的 MVC5 应用程序视图中的数据插入到 sql 数据库中。我收到一个错误,因为与“外键属性”存在冲突。我认为我的问题是,jquery POST 为外键条目返回了错误的 ID。

查看代码

$("#BtnSave").click(function (e) {
    e.preventDefault();

    var data = JSON.stringify({
                KundeId: document.getElementById("Kunde").value, //$('#Kunde option:selected').attr('id'), //$("#Kunde").children(":selected").attr("id"),
                RechnungsNummer: $("#Code").val(),
                RechnungsDatum: $("#Datum").val(),
    });
});

function saveOrder(data) {
    return $.ajax({
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            type: 'POST',
            url: "/Rechnung/Create",
            data: data
    });
}

控制器代码

[HttpPost]
public ActionResult Create(Rechnung rechnung)
{
    var artikel = _rechnungService.Artikellistes(HttpContext);

    var rechnungmodel = new Rechnung
            {
                Rechnungsnummer = rechnung.Rechnungsnummer,
                Rechnungsdatum = rechnung.Rechnungsdatum, //DateTime.Parse(rechnung.Rechnungsdatum.ToString("d")),

                Faelligkeit = DateTime.Now,//rechnung.Faelligkeit, //DateTime.Parse(rechnung.Faelligkeit.ToString("d")),
                KundeId = rechnung.KundeId
            };

    db.Rechnungs.Add(rechnungmodel);
    db.SaveChanges();
}

标签: jquerysqlcontroller

解决方案


尝试使用 jQuery 获取 KundeId:

$("#BtnSave").click(function (e) {
    e.preventDefault();

    var data = JSON.stringify({
        KundeId: $("#Kunde").val(),
        RechnungsNummer: $("#Code").val(),
        RechnungsDatum: $("#Datum").val()
    });
});

您也可以尝试:

$('#Kunde').find(":selected").text();

编辑

您可以使用 attr 获取 id:

 $('#Kunde').find(":selected").attr('value');

推荐阅读