我有包含表单的页面,当用户提交表单时,我想使用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>
答案 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);
}