使用AJAX将数据保存到数据库中

时间:2018-06-07 12:03:41

标签: c# jquery ajax asp.net-mvc database

我有包含表单的页面,当用户提交表单时,我想使用Ajax将数据保存到我的数据库中,但是我收到错误

  

POST http://localhost:xxx/Account/ProcessRequestRMA 500(内部服务器错误)

我错过了什么吗?谁能指点我正确的方向?!
感谢。

控制器:

[HttpPost]
public JsonResult ProcessRequestRMA(int? id ,string kundenavn, string ordrenummer)
{


    var SaveDb = db.RMA_History.Where(a => a.Id == id).FirstOrDefault();

    if (SaveDb == null)
        db.RMA_History.Add(new RMA_History
        {   
            Kundenavn = kundenavn,
            Ordrenummer = ordrenummer,
        });

    db.SaveChanges();

    return Json(SaveDb, JsonRequestBehavior.AllowGet);
}

AJAX:

<form id="RMAForm">

<input name="Ordrenummer" id="Ordrenummer" type="text" >

<input name="Kundenavn" id="Kundenavn" type="text" >

//id
<input type="hidden" name="RMAID"  id="RMAID" />

<button id="btn" type="submit">Send</button>

</form>

<script>
    $(document).ready(function () {

        $("#btn").click(function (e) {


            e.preventDefault();

            var kundenavn = $("#Kundenavn").val();
            var ordrenummer = $("#Ordrenummer").val();
            var id = $("#RMAID").val();

            $.ajax({
                type: 'POST',
                url: "/Account/ProcessRequestRMA",
                dataType: 'json',
                data: {

                    kundenavn: kundenavn,
                    ordrenummer: ordrenummer,
                    id : id

                },

                success: function (status) {
                    if (status == null) {
                        status.Kundenavn = kundenavn;
                        status.Ordrenummer = ordrenummer;

                    }
                    else {
                        alert("Try Again");
                    }
                },

                error: function () {
                    console.log('something went wrong - debug it!');
                }
            });


        });


    });
</script>

2 个答案:

答案 0 :(得分:0)

不应该是

var kundenavn = $("#kundenummer").val();
var ordrenummer = $("#Ordrenummer").val();

我猜因为id错了,所以javascript崩溃了

$("#kundenavn ").val()

由于未定义的元素

答案 1 :(得分:0)

首先要确定导致错误的部分。我认为你因为你的db代码而得到这个错误。请注释db代码然后运行它。它应该有希望工作。如果确实如此,那么通过调试找出db代码中的错误。 db错误可能是由于很多原因,其中一个可能是数据库中的列ID不可为空。

   [HttpPost]
   public JsonResult ProcessRequestRMA(int? id ,string kundenavn, string ordrenummer)
   {


//var SaveDb = db.RMA_History.Where(a => a.Id == id).FirstOrDefault();

//if (SaveDb == null)
//    db.RMA_History.Add(new RMA_History
//    {   
//        Kundenavn = kundenavn,
//       Ordrenummer = ordrenummer,
//   });

// db.SaveChanges();

return Json(true, JsonRequestBehavior.AllowGet);
}