The List<Order> value is returned as null in my controller action method when sending a complex object. Can someone help identify the problem? Do I need to pass an array of objects with indexes?
Javascript
function OnCustomerClick() { //var orders = []; //orders.push({ 'OrderId': '1', 'OrderBy': 'Saroj' }); var complexObject = { FirstName: 'Saroj', LastName: 'K', //Orders : orders Orders: [{ OrderId: 1, OrderBy: 'Saroj' }, { OrderId: 2, OrderBy: 'Kumar' }] }; var obj = { customer: complexObject }; var data2send = JSON.stringify(obj); $.ajax({ type: "POST", url: 'Home/TestCustomer1', data: data2send, contentType: "application/json; charset=utf-8", dataType: "json", success: function (arg) { //call successfull }, error: function (xhr) { //error occurred } }); };
MVC
public ActionResult TestCustomer1(Customer customer) { return Json(customer); }
WITH#
public class Customer { public string FirstName { get; set; } public string LastName { get; set; } List<order> Orders { get; set; } } public class order { public int OrderId { get; set; } public string OrderBy { get; set; } }
Saroj source share