【发布时间】:2019-10-01 14:11:47
【问题描述】:
所以我尝试将一个整数数组传递给我的控制器。
在我的 ajax 调用中,如果我使用 type: 'GET', dataType: 'HTML',我的整数数组不会传递给控制器。 如果我使用 type: 'POST', dataType: 'JSON' ,同样的 ajax 调用可以工作,但是我需要返回一个局部视图。
有什么想法吗?
这是我的代码:
控制器:
public ActionResult GetLaySimulation(int[] projectIDs)
{
var layList = LayHelper.GetLayObjects(projectIDs); //projectIDs = null if I have GET HTML in my ajax call.
return PartialView("_LaySimulation", layList);
}
有效的 ajax 调用:
$.ajax({
url: '@Url.Action("GetLaySimulation", "Admin")',
type: 'POST',
data: { projectIDs: simulationIDs },
dataType: 'JSON',
success: function (result) {
hideLoader();
$("#lay-container").html(result);
},
error: function (err) {
hideLoader();
}
});
我需要什么:
$.ajax({
url: '@Url.Action("GetLaySimulation", "Admin")',
type: 'GET',
data: { projectIDs: simulationIDs },
dataType: 'HTML',
success: function (result) {
hideLoader();
$("#lay-container").html(result);
},
error: function (err) {
hideLoader();
}
});
************************编辑************************
Javascript 函数:
$("#lay-container").html("");
var simulationIDs = [];
var checkBoxes = $(".chk-export");
var showButton = false;
for (var i = 0; i < checkBoxes.length; i++) {
if ($(checkBoxes[i]).is(":checked") == true) {
simulationIDs.push($(checkBoxes[i]).attr("data-id"));
}
}
if (simulationIDs.length > 0) {
$(".btn-excel").fadeIn();
$("#lay-container").fadeIn();
showLoader();
$.ajax({
url: '@Url.Action("GetLaySimulation", "Admin")',
type: 'GET',
data: { projectIDs: simulationIDs },
dataType: 'HTML',
success: function (result) {
hideLoader();
$("#lay-container").html(result);
},
error: function (err) {
hideLoader();
}
});
}
【问题讨论】:
-
是什么阻止您使用从发布请求返回的值作为部分视图?
-
它不返回局部视图。它返回一个 Json 结果。
-
simulationIDsa JavaScript 数组吗? -
是的,我编辑了问题以显示完整的功能。
标签: c# ajax asp.net-mvc-5