Я пытался отправить данные из представления с помощью ajax (POST) на контроллер в формате JSON. Из console.log данные верны, но данные в контроллере отсутствуют ...
Вот контроллер:
[HttpPost]
public ActionResult SavePermission(TestData testData)
{
return Json("DONE");
}
Вот модель:
namespace INTRANETv4.Models
{
public class TestData
{
public string id { get; set; }
public bool read { get; set; }
public bool write { get; set; }
public bool delete { get; set; }
}
}
Вот функция JavaScript из представления:
function Save() {
var rows = document.getElementById("userTable").getElementsByTagName("tr");
var output = [];
for (i = 1; i < rows.length; i++) {
output.push({
id: rows[i].id,
read: rows[i].getElementsByTagName("td")[2].getElementsByTagName("input")[0].checked,
write: rows[i].getElementsByTagName("td")[3].getElementsByTagName("input")[0].checked,
delete: rows[i].getElementsByTagName("td")[4].getElementsByTagName("input")[0].checked
});
}
var myJSON = JSON.stringify(output);
console.log(myJSON);
$.ajax({
type: "POST",
contentType: "application/json",
data: myJSON,
url: "/Files/SavePermission",
dataType: "json"
});
}
Вот console.log myJSON:

А вот содержимое testData от контроллера при отладке:

Когда я использовал строку testData, потому что я беспокоился о преобразовании, строка была нулевой. Спасибо за любой совет.