我试图将一个jSon对象发送到WebApiController并将其反序列化为一个对象,但它只给了我一个零和null的空对象。
我更喜欢做模型绑定但是这似乎不适用于Webappi,就像AJAX调用普通的MVC控制器一样吗?
Javascript(jQuery)
var data = {
siffra : 23,
text : "Meddelande från andra sidan!"
}
$.ajax({
url: "api/Stuff/PostStuff",
method: "POST",
data: JSON.stringify(data),
success: function (result) {
console.log("SUCESS: " + result);
},
error: function (data) {
console.log("error: " + data.responseText);
}
});
WebApiController方法
public string PostStuff(JObject jsonObject)
{
Stuff stuff = JsonConvert.DeserializeObject<Stuff>(jsonObject.ToString());
return "thanks";
}
public class Stuff
{
public int siffra;
public string text;
}
反序列化前的JObject:{“{\”siffra \“:23,\”text \“:\”Meddelande frånandrasidan!\“}”:“”}
答案 0 :(得分:1)
JObject的Insted使用Stuff模型
public string PostStuff(Stuff stuff)
{
return "thanks";
}
WebApi应该自动进行血清化。
修改强>
并确保ajax像这样发送适当的json:
{
"siffra" : 23,
"text" : "Meddelande från andra sidan!"
}
编辑2 试试这个电话
var data = {
siffra : 23,
text : "Meddelande från andra sidan!"
}
$.ajax({
url: "api/Stuff/PostStuff",
method: "POST",
data: data,
success: function (result) {
console.log("SUCESS: " + result);
},
error: function (data) {
console.log("error: " + data.responseText);
}
});
答案 1 :(得分:0)
{"{\"siffra\":23,\"text\":\"Meddelande från andra sidan!\"}": ""}
这是一个JSON对象,其中包含一个名为{\"siffra\":23,\"text\":\"Meddelande från andra sidan!\"}
的属性,其值为空字符串。这与Stuff
类型完全不同。
哪个与引用的JS代码不匹配,因此您没有包含某些内容。