可以在对象window.dialogArguments中传递一个对象数组作为参数吗?

时间:2016-05-27 14:16:29

标签: javascript asp.net angularjs shared-objects showmodaldialog

我正在使用ASP.NET Web API 2.2后端开发AngularJS 1.x项目。我通常会以正常的单页面应用程序(SPA)方式处理这个问题。但是我收到了一些奇怪的请求...弹出对话框(请记住... window.showModalDialog())。

我已经完成了大部分工作,但是我遇到了一些奇怪的事情。将共享对象(弹出对话框和Angular SPA之间的'sharedObject')'window.dialogArguments'传递回Angular前端时,它往往只喜欢键/值对。它不需要任何类型的数组。

我想通过'windows.dialogArguments'将一个文件对象数组或'FileList'传递回AngularJS前端。我想通过以下输入执行此操作:

    <input id="upldDcmnts" 
           name="upldDcmnts"
           type="file"
           multiple />

我尝试了以下最简单的方法:

    window.dialogArguments.UploadFiles = 
      document.getElementById( "UpldDcmnts" ).files;

...并将它们附加到Angular控制器中的FormData对象,如下所示:

    var formData = new FormData();

    formData.append( "upload_files", sharedObject.UploadFiles );

此失败,并在Internet Explorer(IE)11的F12调试器中出现以下错误:

    TypeError: Permission denied

如果有人可以,请解释我如何通过'window.dialogArguments'将上传输入的文件对象数组传递到角度前端。

表单设置似乎正确。它有一个'name'属性和......

 enctype="multipart/form-data"

注意:我理解这是非常规的,但是客户是Windows用户很长时间并且没有任何其他方式(请相信我试图以另一种方式谈论它们并且在此过程中变得意味深长。 ..)。我理解SPA模式可以使用并且看起来更漂亮但在这种情况下无关紧要。

0 个答案:

没有答案