У меня проблема с вызовом метода 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
, но когда я изменил метод для вызова ajax-функции foreach id
в ids
, он вернул ту же ошибку. Что я делаю не так?
EDIT
Я нашел решение.
Проблема была с таблицей базы данных, у нее не было ПЕРВИЧНОГО КЛЮЧА ...