Controller无法捕获JavaScript变量

时间:2017-09-08 14:15:01

标签: javascript c# angularjs kendo-ui asp.net-boilerplate

我在 ASP.NET Boilerplate( ABP )和AngularJS中工作。我在前端使用 Kendo 上传控制器(上传文件)。要访问控制器,我使用点击kendo按钮点击它:

($("#files").data("kendoUpload")).options.async = vm.uploadOptions(onUpdate);
$('.k-upload-selected').click();

函数vm.uploadOptions(onUpdate)获取ID列表并返回retObject,如

var retObject = { saveUrl: '/ControllerName/ActionName?id=15&id=16', autoUpload: false, batch: true }

现在的实际问题: 当我在上面的retObject中指定saveUrl或类似

retObject.saveUrl = '/ControllerName/ActionName?id=195&id=196&id=197'

(ids硬编码),输入控制器(我有一个断点),我有一个带有两个元素的C#List。

当我分配url时:

vm.url = '/ControllerName/ActionName?fileId=' + fileIds[0];
len = fileIds.length;
for (var i = 1; i < len; i++) {
    vm.url += '&fileId=' + fileIds[i];
}
retObject.saveUrl = vm.url;

未输入控制器。

最后(这是我现在在代码中使用的),当我指定

vm.url = '?fileId=' + fileIds[0];
len = fileIds.length;
for (var i = 1; i < len; i++) {
    vm.url += '&id=' + fileIds[i];
}
retObject.saveUrl = '/ControllerName/ActionName' + vm.url;

它确实有效 - 输入控制器时带有正确的ID列表。

当我复制动态生成的(不工作)字符串并将其指定为硬编码时,它开始工作。 为什么会发生这种情况,我的意思是:为什么以不同方式初始化的相同字符串会产生不同的结果呢?

0 个答案:

没有答案