Я знаю, что это уже помечено как ответ, но есть еще один способ сделать это:
Я не использую обязательный атрибут FromBody.
Контроллер
public class JsonRequest
{
public string Id { get; set; }
}
[HttpPost]
public ActionResult Save(JsonRequest data)
{
return Json(data.Id);
}
Вместо использования dataType Я использую accept , и вам не нужно преобразовывать свой JSON в строку.
Чтобы избежать проблем с относительными путями, яиспользуя также: url: '@ Url.Action ("Сохранить", "Домой") ".
Javascript
function send()
{
//JSON data
var dataType = 'application/json';
var data = {
"id": "Zaki"
}
console.log('Submitting form...');
console.log(data);
$.ajax({
type: 'POST',
url: '@Url.Action("Save", "Home")',
accept: dataType,
data: data,
success: function (result) {
console.log('Data received: ');
console.log(result);
}
});
}
Удачи в вашем проекте.