在从JavaScript传递的Controller中读取多维数组

时间:2019-02-24 11:09:46

标签: asp.net-mvc multidimensional-array

我正在尝试通过使用以下代码将多维数组发送到控制器方法。 我需要帮助来读取控制器中的json多维数组。有人可以指导我如何读取json。

 var arguments = new Array();

                var orderList= $('.orderList');
                /*get productId,quantity*/
                for (var i = 0; i < orderList.length; i++) {
                    arguments.push({
                        productId: orderList[i].id, 
                        quantity: orderList.children(".quantity")[i].value 
                        });

                }
                 $.ajax({
                    url: $(current).data().url,
                    type: 'POST',
                    traditional: true, 
                    dataType: "json",
                    data: { "arguments": JSON.stringify(arguments), "userId": $('#UserId').val()},
                    success: function (data) {
                        if (data.Success) {
                                          }
                            } 
                      });

/ *控制器代码* /

[HttpPost]
    public ActionResult SaveExecutionOrder(List<string> arguments, int pageRegistryItemId)
    {
     /*The arguments are in Json, how should I read those ?
The arguments Array coming like this [{"productId":"2","quantity":"1"},{"productId":"1","quantity":"2"},{"productId":"4","quantity":"3"},{"productId":"3","quantity":"0"},{"productId":"6","quantity":"0"},{"productId":"5","quantity":"0"},{"productId":"23","quantity":"0"}]*/
        }

1 个答案:

答案 0 :(得分:0)

我认为以viewModel的形式接收将是最简单的选择。根据所需的数据结构创建一个viewModel,并在控制器操作中将该viewModel作为参数接收。

public class OrderList
{
    public List<Order> OrderedItems { get; set; }
    public string SomeOtherParameters { get; set; }
}
public class Order
{
    public string ProductId { get; set; }
    public int Quantity { get; set; }
}

[HttpPost]     公共ActionResult SaveExecutionOrder(OrderList数据)     {         //做点事     }

希望这会有所帮助