我正在尝试通过使用以下代码将多维数组发送到控制器方法。 我需要帮助来读取控制器中的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"}]*/
}
答案 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数据) { //做点事 }
希望这会有所帮助