Я использую Ajax , чтобы сделать модель и отправить ее на контроллер.
Вот модель:
public class PersonDto{
public Guid Id { get; set; }
public int PersonAge { get; set; }
public string PersonName { get; set; }
public DateTime? DateCreated { get; set; }
}
Вот контроллер:
[Route("EditPerson")]
[HttpPost]
public async Task<IActionResult> EditPerson(PersonDto offer) {
//Save to Entity FW
}
Вот Ajax:
var data = {
Id: $('#personModal #personModalTitle').text(),
PersonAge: $('#personModal #personId').val(),
PersonName: $('#personModal #personName').val()
};
var dataJson = JSON.stringify(data);
console.log(dataJson);
$.ajax({
type: 'POST',
url: 'Persons/EditPerson',
data: dataJson,
contentType: "application/json",
success: function (result) {
},
error: function (error) {
Alert("Error Saving offer changes!");
}
});
Вот консольный журнал (Json), все выглядит великолепно:
{"Id":"96f2ae80-45cc-4a6c-abe0-230c2cbd3043","PersonAge":"5","PersonName":"John"}
Когда я Отладка PersonsController
Я вижу, что моя модель никогда не заполняется, не пуста, просто в ней нет данных.
Я попытался добавить DateCreated
к модели в Ajax функции, я попытался разобрать Age в int.
Я попытался добавить [FromBody]
аннотацию к PersonDto
в Action , затем я получил NULL к моей модели.
Я незнать, где я могу сделать ошибку здесь.