How to pass a List of a class into model of ajax post call MVC?

ⅰ亾dé卋堺 提交于 2019-12-13 07:01:56

问题


I have a model class like below:

public class clsUser
{
    public string FirstName{ get; set; }
    public String username { get; set; }
    public String password { get; set; }
    public List<ContactNumbers> Cnumbers{ get; set; }
}

Now i want to send ajax request with above model. i have tried to do same by using the following code:

  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);
        }

    });

But this always sending "Cnumbers" as null. i am not getting why..

If i am doing in wrong way could experts tell me the correct way..

thanks in advance.


回答1:


You need to create proper JSON. You need to create an array for Cnumbers

var dd = {
    "FirstName": "ABC",
    "username": "abc123",
    "password": "abc@123",
    "Cnumbers": [{
        "Home": "0987654321"
    }, {
        "Company": "7654321"
    }]
}



回答2:


The problem most likely lies in var objInsertUser= JSON.stringify(dd);. Your object is already JSON, so there's no need to stringfy it. data: dd, should be sufficient. When you Stringify already existing JSON you end up with default values for the parameters, and all non-primitives are null by default.

Also, as noted, your JSON is incorrect. Some people, when confronted with a problem, think "I know, I'll use JSON. Now you have two problems" XD. So, in summary: use correct JSON, and don't JSON.Stringify existing JSON.



来源:https://stackoverflow.com/questions/36774690/how-to-pass-a-list-of-a-class-into-model-of-ajax-post-call-mvc

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!