Похоже, ваш метод действия имеет неправильный тип возврата и метод HTTP в этом определении:
public int postData(List<NavigationModal> contents)
Обратите внимание, что контроллер, который получает данные JSON из запроса AJAX, должен иметь как минимум ActionResult
в качестве типа возврата (Вы можете использовать JsonResult
в качестве альтернативы из-за настройки dataType: json
) и указать атрибут [HttpPost]
, потому что type: POST
было установлено в обратном вызове AJAX.
Правильная настройка для запроса AJAX должна быть такой, как в следующем примере:
Действие контроллера
[HttpPost]
public JsonResult PostData(List<NavigationModal> contents)
{
Session["data"] = contents;
return Json("true");
}
Обратный вызов AJAX
var data = [];
function StoreDataInSession(regId, MyRegistrations) {
var contents = {
regId: regId,
URL: window.location.pathname.split("/")[2] == null ? 'index' : window.location.pathname.split("/")[2]
};
data.push(contents);
var newData = JSON.stringify({ 'contents': data });
$.ajax({
contentType: 'application/json; charset=utf-8',
dataType: 'json',
type: 'POST',
url: '@Url.Action("PostData", "Navigation")',
data: newData,
success: function () { ReDirectToAction(); }
});
}