如何将类的List传递给ajax post调用MVC的模型?

时间:2016-04-21 15:51:00

标签: jquery ajax asp.net-mvc

我有一个如下所示的模型类:

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。我不明白为什么......

如果我以错误的方式做,专家可以告诉我正确的方法..

提前谢谢。

2 个答案:

答案 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。