【发布时间】:2019-12-28 17:49:56
【问题描述】:
在 Asp.Net 核心中,我有一个剃须刀页面,我想将 Ajax 帖子发送到 Post 方法,但总是得到空模型。这是我的简化问题。
public class IndexModel : PageModel
{
public void OnPost([FromBody]A A)
{
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":""}
但我的模型总是 null.ModelState 错误是
解析值时遇到意外字符:A. Path '', line 0, position 0.
【问题讨论】:
-
你试过
data: JSON.stringify(c)吗? -
嘿伙计,你太棒了,两天后你释放了我的思想。非常感谢。它有效
-
好的,我会添加一个帮助其他人的答案:)
标签: json ajax asp.net-core razor-pages