Я хочу обновить некоторые записи в базе данных одним вызовом Ajax, но модель не имеет элементов на стороне сервера.
Я попытался создать объект JSon и передать его в контроллер API через Ajax.
JQUERY:
var JSONObject = { SortedAnswersViewModel: [] };
var answer;
var $listElements = $sortableList.children();
var orderNumber = 1;
$.each($listElements, function (i, v) {
answer = { ID: parseInt(v.id), OrderNumber: orderNumber };
orderNumber++;
JSONObject.SortedAnswersViewModel.push(answer);
});
console.log(JSON.stringify(JSONObject)); // Here I can see JSON object correctly
var ajaxRequest = $.ajax({
type: "POST",
url: "/api/Cloudition/EditAnswersOrder",
data: JSON.stringify(JSONObject),
success: function (data) {
// Codes...
},
error: function (xhr, ajaxOptions, thrownError) {
// Codes...
}
});
Модель:
public class SortedAnswersViewModel
{
public int ID { get; set; }
public int OrderNumber { get; set; }
}
Контроллер:
[HttpPost]
public string EditAnswersOrder(List<SortedAnswersViewModel> model)
{
try
{
int i = 1;
foreach (var item in model)
{
int answerID = Convert.ToInt32(item);
AnswerStep answer = db.AnswerSteps.Where(ans => ans.ID == answerID).FirstOrDefault();
answer.OrderNumber = i;
i++;
}
db.SaveChanges();
return "AnswersOrderEdited";
}
catch (Exception ex)
{
return ex.Message;
}
}
Все, что у меня есть в контроллере - это пустой список (количество = 0),Любое решение?На самом деле это возможно?