JavaScript文件上传插件不起作用

时间:2014-01-09 18:45:26

标签: javascript jquery asp.net ajax asp.net-mvc-4

我正在使用这个插件:https://github.com/blueimp/jQuery-File-Upload/wiki,问题是当我点击上传并给出按钮保存它调用一个控制器,到目前为止很好但是当他给出点击按钮需要来一些其他属性,我没有把这些属性与文件一起带来。 遵循代码: /查看

 $("#anexoUpload").fileupload({
                dataType: 'json',
                add: function (e, data) {
                    data.context = $('#salvarAnexo')
                      .on('click', function () {
                          data.submit();
                          $.ajax({
                                  url: "@Url.Action("AdicionarAnexo")",
                                  type: "POST",
                                  cache: false
                              }).done(function (data) {
                              });
                            data.context = $('<p/>').text('Uploading...').appendTo(document.body);
                            data.submit();
                        });
                },
                done: function (e, data) {
                    alert('Arquivo salvo com sucesso!');
                    $(".bar").attr("style", "width:0%;")
                }

<li id="anexo">
                                <span>Anexo</span>
                                <input type="file" name="files[]" id="anexoUpload" />
                                <div id="progress">
                                    <button id="salvarAnexo">Salvar Anexo</button>
                                    <div class="bar" style="width: 0%;"></div>
                                </div>

                            </li>
                });

我认为问题出在click fileupload中的调用函数中。 我使用这个插件不需要在页面上回发并仅输入yes,当你插入时还需要两个id用于插入数据库并返回ajax以显示附件列表。

//控制器

   [HttpPost]
        public ActionResult AdicionarAnexo()
        {
            var lista = new List<UploadFilesResult>();
            foreach (string file in Request.Files)
            {
                HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
            }
         }

由于

1 个答案:

答案 0 :(得分:0)

您可以使用数据属性

通过ajax调用传递数据
$.ajax({
    url: "@Url.Action("AdicionarAnexo")",
    type: "POST",
    data: { id1: "id1", id2: "id2" },
    cache: false

})

然后在您的控制器上

public ActionResult AdicionarAnexo(string id1, string id2)

您可以将它们命名为您想要的,只需确保视图上的名称与控制器上的名称完全匹配

相关问题