使用blueimp fileupload发送其他参数

时间:2014-09-25 10:53:19

标签: jquery asp.net jquery-file-upload httpcontext blueimp

我正在使用blueimp file-upload的功能将其他参数发送回add内设置的服务器:

var simpleImport = false, replaceImport = false, mergeImport = false;   
$uploadButton.fileupload({
            url: myURL,
            formData: { simple : simpleImport, replace : replaceImport, merge : mergeImport }, 
            add: function (e, data) {
                var valid = true;
                // validation logic
                if (valid) {
                    if (condition №1) simpleImport = true;
                    else if (condition №2) replaceImport = true;
                    else if (condition №3) mergeImport = true;
                    data.submit();
                }
            },
            done: function (e, data) {
                if (data.result) {
                    oTable.ajax.reload();
                }
            },
            fail: function (e, data) {
                alert("shit happens");
            }
        });

在服务器上我以这种方式阅读它们:

var merge = Convert.ToBoolean(Context.HttpContext.Request.Form["merge"]);
var simple = Convert.ToBoolean(Context.HttpContext.Request.Form["simple"]);
var replace = Convert.ToBoolean(Context.HttpContext.Request.Form["replace"]);

但是尽管在add中更改了它的值,我仍然在处理程序中将它们全部等于false。有没有什么方法可以获得正确的值,除非使用隐藏的输入或我做错了什么?

1 个答案:

答案 0 :(得分:4)

确定。我终于解决了这个问题:而不是在设置对象中添加其他参数:

$uploadButton.fileupload({
      url: myUrl,    
      formData: { additional params },
      ....
});

在使用add方法提交数据之前,应直接对其进行说明:

add: function (e, data) {
    .....
    data.formData = { additional params };
    data.submit();
},