【发布时间】:2018-09-01 05:57:09
【问题描述】:
当在我的引导数据表中选择一行时,我建立了一个数组。然后,我需要将其从我的视图传递给将启动部分视图的控制器。但是,当我执行代码时,我的控制器中出现空引用异常。控制器中的代码只是实际使用的占位符,但在那里表明我打算在加载数组时循环数组。关于为什么它会显示 NULL 的任何想法,即使我可以在调试中看到它有值。
AJAX:
function MoveSelected() {
$.ajax({
type: "Get",
url: '@Url.Action("MoveSelectedRoute", "Transport")',
data: { orders: completeArray },
success: function (data) {
$('#detail_MoveSelectedOrders').html(data);
$('#modalMoveSelectedOrders').modal('show');
}
})
}
控制器:
public ActionResult MoveSelectedRoute(string[] orders)
{
string OrdersToMove = string.Empty;
foreach (string row in orders)
{
string orderNo = orders.ToString().PadLeft(10, '0');
if (OrdersToMove == string.Empty)
{
OrdersToMove = orderNo;
}
else
OrdersToMove = OrdersToMove + "," + orderNo;
}
}
【问题讨论】:
-
您还没有显示
completeArray是什么!但假设它是一个字符串数组,例如[ "a", 'b', 'c' ],那么你需要添加traditional: true,ajax 选项。 -
或者你需要
data: JSIN.stringify({ orders: completeArray }),和contentType: 'application/json; charset=utf-8', -
不幸的是,这些都不起作用,它只是一个字符串数组
-
我给你的两个选项都有效!
-
斯蒂芬我误读了您提供的选项并将它们组合在一起。 stringify 不起作用,但
traditional: true,起作用了。如果您将此作为答案,我会标记它。谢谢
标签: javascript c# arrays ajax asp.net-mvc