我在这里做错了什么?
我可以成功地将4个bool类型的参数传递给控制器。现在,我想将一个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[]
以防万一!!!