【问题标题】:Jquery passing data to ajax function in mvc4Jquery将数据传递给mvc4中的ajax函数
【发布时间】:2013-12-18 11:32:22
【问题描述】:

我已经开发了 ASP.NET MVC4 文件上传,它工作正常,但我有一个问题,我需要将参数 Folderid 传递给控制器​​,但不幸的是我无法在控制器中获取 folderId。你能尽快帮助我吗

下面是我的代码

$(document).ready(function () {

        var Folderid = "ab";     

        $('#fileupload').fileupload({
            dataType: 'json',
            url: '/Home/UploadFiles',
            autoUpload: true,
             data: { name: Folderid  },
            done: function (e, data) {
                if (data.result.name == '') {
                    $('.file_name').html('Please Upload valid image...');
                    $('.progress .progress-bar').css('width', 0 + '%');

                }
                else {
                    $('.file_name').html("Uploaded Successfully..[ " + data.result.name + " ]");
                }

            }
        }).on('fileuploadprogressall', function (e, data) {
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $('.progress .progress-bar').css('width', progress + '%');
        });
    }); 

下面是我的控制器代码

[HttpPost]
        public ContentResult UploadFiles(string name)
        {

            string FolderId = name;

            var r = new List<UploadFilesResult>();               
            foreach (string file in Request.Files)
            {
                var allowedExtensions = new[] { ".jpg", ".jpeg", ".bmp", ".icon" };

                HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
                if (hpf.ContentLength == 0)
                    continue;
                if (!allowedExtensions.Contains(System.IO.Path.GetExtension(hpf.FileName).ToString()))
                {
                    r.Add(new UploadFilesResult()
                    {
                        Name = "",
                        Length = 0,
                        Type = ""

                    });
                }
                else
                {
                    string savedFileName = Path.Combine(Server.MapPath("~/Upload"), Path.GetFileName(hpf.FileName));
                    hpf.SaveAs(savedFileName);
                    r.Add(new UploadFilesResult()
                    {
                        Name = hpf.FileName,
                        Length = hpf.ContentLength,
                        Type = hpf.ContentType
                    });
                }
            }
            return Content("{\"name\":\"" + r[0].Name + "\",\"type\":\"" + r[0].Type + "\",\"size\":\"" + string.Format("{0} bytes", r[0].Length) + "\"}", "application/json");
        }

【问题讨论】:

  • 找到这个:stackoverflow.com/questions/17934689/… 这可能有一些用处。另外,我建议提及您正在使用的库,fileUpload 不是 jQuery 函数。
  • @Swires,请您指定我的磨损在哪里......请
  • 查看答案以获得可能的修复,但我的意思是 fileUpload 是一个单独的库github.com/blueimp/jQuery-File-Upload/wiki/…,应该在问题中提及。当我第一次阅读它时,我想“我不知道 jQuery 处理文件上传!?”
  • @ Swires,明白了,非常感谢...您为我节省了很多时间,我非常感谢您,我使用过这样的 formData : {name: Folderid},
  • 没问题,很乐意提供帮助。

标签: jquery ajax


【解决方案1】:

编辑也许尝试在 fileupload 调用中将数据更改为 formData,如下所示:

formData: { name: Folderid  },

取自here

【讨论】:

  • 我曾尝试使用这样的控制器,但在 'Request.Form["name"]' 中出现 Null 引用错误
  • 这不起作用字符串 FolderId = Request.Form["name"]。您已评论链接正在工作您提到此链接 github.com/blueimp/jQuery-File-Upload/wiki/... 因此,如果您将答案制作为此链接,我将勾选答案
猜你喜欢
  • 2011-06-19
  • 1970-01-01
  • 2011-01-25
  • 2016-07-19
  • 1970-01-01
  • 2018-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多