Я пробую каждый способ отправить json из вызова ajax и получить его в Action (я пробовал с помощью веб-метода и имел ту же проблему), действие получило модель с теми же свойствами json. Но переменная, которая получила действие, всегда равна нулю.Отправить json из ajax jquery в контроллер, который получает модель
вот код: Модель:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
Действие:
public ActionResult InsertPerson(Person person)
{
return View();
}
И, наконец, вид:
<input id="btnSend" type="button" value="Send" />
<script type="text/javascript">
$(document).ready(function() {
var PersonDto = function (name, age) {
this.Name = name;
this.Age = age;
};
var person1 = new PersonDto("Diego", 27);
$('#btnSend').on('click', function() {
$.ajax({
cache: false,
url: '@Url.Action("InsertPerson", "JsonTest")',
type: "GET",
contentType: "application/x-www-form-urlencoded",
dataType: "text",
data: "{person:" + JSON.stringify(person1) + "}",
success: function (data) {
alert(data);
},
error: function (xhr, status, error) {
alert(xhr);
displayJsonError(xhr);
}
});
});
});
</script>
Все учебник, что я следую показывает, что это путь к сделайте это, я проверяю json в данных, и, похоже, все в порядке, я пытаюсь сделать то же самое в веб-методе И это не сработало, не знаю, что я делаю неправильно.
Ошибка была в типе contenttype и типе. Данные работали в обоих направлениях. Почему это должен быть тип POST? –
Использование POST помещает данные в тело запроса вместо параметров url. Как правило, когда вы отправляете данные на сервер, вы должны использовать POST. –