В ядре Asp.Net у меня есть страница бритвы, и я хочу отправить сообщение Ajax методу Post, но всегда получаю нулевую модель. Вот мой упрощенный вопрос.

public class IndexModel : PageModel { public void OnPost([FromBody]AA) { if (ModelState.IsValid) { } } } 

а это моя модель:

 [JsonObject(MemberSerialization.OptOut)] public class A { [JsonProperty] public string Id { get; set; } [JsonProperty] public string CityId { get; set; } [JsonProperty] public string Infected { get; set; } [JsonProperty] public string Susceptible { get; set; } [JsonProperty] public string Recovered { get; set; } [JsonProperty] public string CityName { get; set; } } 

Это мой запрос Ajax:

 function f(event) { var token = $("input[name='__RequestVerificationToken']").val(); var c = {}; c["Id"] = "1"; c["CityId"] = "2"; c["Infected"] = "3"; c["Susceptible"] = "4"; c["Recovered"] = "5"; c["CityName"]="" $.ajax({ url: "./DynamicEpidemic", type: "post", contentType: 'application/json; charset=utf-8', headers: { "RequestVerificationToken": token }, data: { A: JSON.stringify(c)}, success: function () { alert("OK"); } }); console.log(JSON.stringify(c)); } 

и отправленный объект json выглядит следующим образом: {"Id":"1","CityId":"2","Infected":"3","Susceptible":"4","Recovered":"5","CityName":""} но моя модель всегда равна нулю. Ошибка модели

Неожиданный символ, обнаруженный при разборе значения: A. Путь », строка 0, позиция 0.

Попробуйте перейти к data: JSON.stringify(c) .