Javascript ASP.NET Core中在复杂类型上绑定列表的模型
我在ASP.NET核心MVC中的模型绑定方面遇到问题。我有这个端点,当从Javascript调用它时,它会被命中,但是postData总是空的Javascript ASP.NET Core中在复杂类型上绑定列表的模型,javascript,c#,asp.net-core,asp.net-core-mvc,Javascript,C#,Asp.net Core,Asp.net Core Mvc,我在ASP.NET核心MVC中的模型绑定方面遇到问题。我有这个端点,当从Javascript调用它时,它会被命中,但是postData总是空的 [HttpPost("/somepost")] public string SomePost([FromBody] PostData postData) { return "Got It!"; } public class PostData { public int ID
[HttpPost("/somepost")]
public string SomePost([FromBody] PostData postData)
{
return "Got It!";
}
public class PostData
{
public int ID { get; set; }
public string[] ListOrArray { get; set; } // Doesn't matter if this ends up a List or an Array
}
正在从$点击此端点。单击函数:
$('img.some-image').click(function () {
array = ['sample data', 'some more'];
data = {
ID: 1,
ListOrArray: array
};
$.ajax({
type: 'POST',
url: '/somepost',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: data,
success: function (result) {
console.log('Received: ');
console.log(result);
}
});
});
我猜问题在于模型绑定,但我不确定。我见过使用小写Javascript对象属性名的示例,但这对我来说没有任何改变
我还必须从帖子中删除[ValidateAntiForgeryToken],但我更愿意将其重新添加。我猜我必须将令牌添加到GET请求中,以便提交帖子,但我还不知道如何做到这一点。但我认为这与我的问题无关
我一直在寻找答案和例子,但没有一个对我有用。ASP.NET核心是相当新的,所以没有太多。我使用的是1.1.0版。您已经设置了
contentType:json
,但是您正在发送一个普通对象
,您需要发送json对象
要将对象
转换为json对象
,可以使用json.stringify
$.ajax({
type: 'POST',
url: '/somepost',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(data),
success: function (result) {
console.log('Received: ');
console.log(result);
}
});
您已经设置了
contentType:json
,但是您正在发送一个普通对象
,您需要发送json对象
要将对象
转换为json对象
,可以使用json.stringify
$.ajax({
type: 'POST',
url: '/somepost',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(data),
success: function (result) {
console.log('Received: ');
console.log(result);
}
});
datatype
与发布的内容无关(它指定服务器发回的类型)。我想你的意思是说你已经设置了contentType:'json
,但是…@StephenMuecke确实是。datatype
与发布的内容无关(它指定了服务器发回的类型)。我想你的意思是说你已经设置了contentType:'json
'但是…@StephenMuecke是的。要添加令牌,只需包括\uuuuuuu RequestVerificationToken:$('input[name=“\uu RequestVerificationToken”]).val()
在“数据对象”中要添加令牌,只需包含\uuu RequestVerificationToken:$('input[name=“\uu RequestVerificationToken”]”)。val()“数据对象”中的代码>