【发布时间】:2016-01-06 09:58:38
【问题描述】:
我在这里做错了什么?
我可以成功地将 4 个布尔参数传递给控制器。现在我想将一个 int 数组传递给我的控制器,但它不起作用 - 我在示例中留下了我的工作代码(已注释掉),所以你可以看到我没有改变那么多 - 我想我是缺少一些简单的东西(毕竟是 17:44 !!!)。我可以看到数组是使用alert(rolesChecked); 语句填充的:
var rolesChecked = [];
$('[type="checkbox"].role-checkbox').each(function () {
if (this.checked)
{
rolesChecked.push($(this).val());
}
});
alert(rolesChecked);
//var administrator = $('#cbAdministrator').is(":checked");
//var manager = $('#cbManager').is(":checked");
//var technician = $('#cbTechnician').is(":checked");
//var transcriber = $('#cbTranscriber').is(":checked");
if (rolesChecked.count > 0){//administrator || manager || technician || transcriber) {
$.ajax({
url: '@Url.Action("GetFutureHolidays", "Employee")',
type: 'GET',
dataType: 'json',
// we set cache: false because GET requests are often cached by browsers
// IE is particularly aggressive in that respect
cache: false,
data: {
roleIdXXXs: rolesChecked
//includeAdministrator: administrator,
//includeManager: manager,
//includeTechnician: technician,
//includeTranscriber: transcriber
},
success: function (data) {
//do something...
}
});
}
控制器动作:
public string GetFutureHolidays(List<int> roleIdXXXs)//bool includeAdministrator, bool includeManager, bool includeTechnician, bool includeTranscriber)
{
//do something
}
使用旧代码,控制器动作会被击中......使用数组,它永远不会被击中......我在这里错过了什么......
另外,我认为List<int> roleIdXXXs 应该没问题,但我也尝试了List<string>、int[] 和string[],以防万一!!!
【问题讨论】:
标签: javascript ajax asp.net-mvc