我有一个如下所示的模型类:
public class clsUser
{
public string FirstName{ get; set; }
public String username { get; set; }
public String password { get; set; }
public List<ContactNumbers> Cnumbers{ get; set; }
}
现在我想用上面的模型发送ajax请求。我试图通过使用以下代码来做同样的事情:
var dd =
{
"FirstName": "ABC",
"username": "abc123",
"password": "abc@123",
"Cnumbers[0].Home":"0987654321",
"Cnumbers[1].Company":"7654321"
}
var objInsertUser= JSON.stringify(dd);
var URLValue = "http://localhost:47083/api/TestAPI/insertUser";
$.ajax({
type: "POST",
url: URLValue,
data: objInsertUser,
contentType: "application/json",
success: function (data) {
alert(data);
}
});
但是这总是将“Cnumbers”发送为null。我不明白为什么......
如果我以错误的方式做,专家可以告诉我正确的方法..
提前谢谢。答案 0 :(得分:3)
您需要创建适当的JSON。您需要为Cnumbers
var dd = {
"FirstName": "ABC",
"username": "abc123",
"password": "abc@123",
"Cnumbers": [{
"Home": "0987654321"
}, {
"Company": "7654321"
}]
}
答案 1 :(得分:0)
问题最可能在于var objInsertUser= JSON.stringify(dd);
。您的对象已经是JSON,因此无需对其进行字符串处理。 data: dd,
应该足够了。 Stringify已经存在的JSON时,最终会得到参数的默认值,默认情况下所有非基元都为null。
另外,as noted,您的JSON不正确。有些人在遇到问题时会想到,我知道,我会使用JSON。现在你有两个问题&#34; XD。总而言之:使用正确的JSON,并且不要JSON.Stringify
现有的JSON。