Click here to Skip to main content
15,895,142 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Here is my sample code

C#
//model class
class user
{
   public string firstname{get,set}
   public string lastname{get,set}
   public string Email{get,set}
}

<script>
    var FName = $('#example1').data('handsontable').getDataAtCol(0);
        var LName = $('#example1').data('handsontable').getDataAtCol(1);
        var mail = $('#example1').data('handsontable').getDataAtCol(2);
        
        var Objarray = [];
        $.each(obj, function (i, item) {
            debugger;
            var User = new Object();
            User.FirstName = item["0"]
            User.LastName = item["1"];
            User.Email = item["2"];
            Objarray.push(User);
        })
        
        alert(Objarray);
       // obj = obj.split(',');
        //alert(obj[1]);
     //   var a = obj;
        $.ajax({
            url: "/Home/SaveDetails",
            type: "POST",
          
            contentType: "application/json",
            dataType: "JSON",
            data:{FisrtName:FName,LastName:LName,Email:mail},
            success: function (data) { }

        });

    });
<script>


What I have tried:

[HttpPost]
public JsonResult SaveDetails(string[] FirstName, string[] LastName, string[] Email)
{
var js = new JavaScriptSerializer();
// User[] u = js.Deserialize<user[]>(obj);
return Json( null);
}
Posted
Updated 3-Mar-16 17:34pm

1 solution

Seems model propeprty name and javascript object property name are not equal. So it is not deserializing correctly and secodly you need to use Deserialize() to parse it. Try with below code.

Model class:
C#
public class user
{
	public string FirstName { get; set; }
	public string LastName { get; set; }
	public string Email { get; set; }
}

Javascript code:
JavaScript
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script>
    var Objarray = [];
    var User = new Object();
    User.FirstName = "Manas1";
    User.LastName = "Moha1";
    User.Email = "email1";
    Objarray.push(User);

    var User2 = new Object();
    User2.FirstName = "Manas2";
    User2.LastName = "Moha2";
    User2.Email = "email2";
    Objarray.push(User2);

    var jsonObj = { userList: Objarray };
    alert(JSON.stringify(jsonObj));

    $.ajax({
        type: "POST",
        url: "/Home/SaveDetails",
        data: JSON.stringify(jsonObj),
        contentType: "application/json",
        datatype: "json",
        success: function (costs) {
            alert("success");
        }
    });
</script>


Controller code:
C#
[HttpPost]
public ActionResult SaveDetails(List<user> userList)
{
	// Implement your own logic
	foreach(user tempObj in userList)
	{
		string FirstName = tempObj.FirstName;
	}

	return Json("Success");
}
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900