我在调用ajax POST方法时遇到问题,它只是返回错误并显示消息:Internal Server Error。
我的脚本如下:
$('.add-column').click(function () {
var ids = [];
$('#table1 > tbody > tr.selected').each(function () {
var ident = $(this).attr('id');
ids.push(ident);
});
$.ajax({
url: '/Syzyf/AddUserColumns',
type: 'POST',
contentType: "application/json; charset=utf-8",
data: { id : JSON.stringify(ids) },
cache: false,
success: function (result) {
},
error: function (xhr, status, error) {
console.log(error);
}
});
});
以及控制器的方法:
[HttpPost]
public ActionResult AddUserColumns(List<int> ids)
{
var userId = GetUserId(User.Identity.Name);
using (var ctx = new SyzyfContext())
{
foreach (var id in ids)
{
var uc = new UserColumns();
uc.ColumnId = id;
uc.UserId = userId;
ctx.UserColumns.Add(uc);
}
ctx.SaveChanges();
}
return Json("Success");
}
我认为data
可能有问题,但是当我更改了在id
中调用aajax函数foreach ids
的方法时,它返回了相同的错误。我该怎么办?
编辑
我找到了解决方法。
问题出在数据库表上,它没有PRIMARY KEY ...