我一直在尝试传递由以下函数创建的 int 数组:
function getCurrentSwimmerList() {
var swimmerList = [];
$("#swimmerTable > tbody > tr").each(function () {
swimmerList.push( parseInt($(this).data('swimmerid')) );
});
return swimmerList;
}
我在令牌输入中使用它来消除搜索框中的某些建议,所以我设置了令牌输入,如下所示:
$("#swimmerTokenInput").tokenInput("Admin/retrieveTokensForQuery", {
urlParams: { "IDsAlreadyAdded": getCurrentSwimmerList },
我修改了令牌输入文件,以允许您通过设置在请求中传递其他参数,urlParams
我对代码所做的添加是(在相应的部分中):
//add params passed in as urlParams
if (settings.urlParams != null) {
for (var key in settings.urlParams) {
if (settings.urlParams.hasOwnProperty(key)) {
ajax_params.data[key] = settings.urlParams[key];
}
}
}
我进行了测试,并成功地在查询字符串中获得了这些值(在Ol
搜索框中输入的位置):
IDsAlreadyAdded=5%2C6&q=Ol
哪个 chrome 可以正确识别和解析:
IDsAlreadyAdded:5,6
q:Ol
我正在调用的方法的签名如下:
public JsonResult retrieveTokensForQuery(string q, int[] IDsAlreadyAdded)
每次q
成功获取适当的值,但IDsAlreadyAdded
总是获取一个空值。我查看了关于 SO(尝试traditional=true
,或IdsAlreadyAdded[] = ...
,拥有List<int>
或IEnumerable<int>
)的各种答案以尝试解决问题,但我无法让它工作。
任何帮助将不胜感激。