Blueimp fileupload在提交时将json对象发送到控制器

时间:2016-01-14 22:26:22

标签: javascript c# jquery asp.net json

这是我在这里的第一个问题所以请保持温和......我有一个cshtml(ASP.NET MVC 5)页面,我想将文件上传到我已经存储到的某些行(在页面上的dataTable中)一个json。 json看起来像这样:

JSON:

var jsonDataIds = [
{"Id":"9f835451-14ba-e511-a63e-643150188f7f",.. more data},
{"Id":"a0835451-14ba-e511-a63e-643150188f7f",.. more data},
{"Id":"a1835451-14ba-e511-a63e-643150188f7f",.. more data}];

我正在使用blueimp fileupload来处理文件上传。

这是在我的页面中初始化元素的脚本:

使用Javascript:

$("#inFile").fileupload({
            url: 'attachFile',
            dataType: 'json',
            formData: {ecId:jsonDataIds,usrId:"@User.GetId()"},
            add: function(e, data) {
                fileData = data;
            },
            done: function(event, data) {
                alert(data.message);
            },
            fail: function(event, data) {
                alert("Error uploading the file.");
            }
        });

        $("#btnUpload").on('click', function() {
            if(fileData){
                fileData.submit();
            }
        });

当我签入控制器attachFile时,收到usrId,收到文件,但不收到ID。

我认为可能存在限制,您只能发送字符串而不是json对象。

控制器 :(部分)

    public ActionResult attachFile(List<MyModel> ecId, string modUsrId) 
// modUsrId is ok, ecId is NULL
            {
                for (int i = 0; i < Request.Files.Count; i++) 
// Request.Files.Count is ok

1 个答案:

答案 0 :(得分:0)

通过将json对象作为字符串发送然后在控制器端序列化来修复“问题”。