Jquery将数据传递给mvc4中的ajax函数
我已经开发了ASP.NET MVC4文件上载,它工作正常,但我有一个问题需要将参数Folderid传递到控制器,但不幸的是,我无法在控制器中获取Folderid。你能尽快帮我吗 下面是我的代码Jquery将数据传递给mvc4中的ajax函数,jquery,ajax,Jquery,Ajax,我已经开发了ASP.NET MVC4文件上载,它工作正常,但我有一个问题需要将参数Folderid传递到控制器,但不幸的是,我无法在控制器中获取Folderid。你能尽快帮我吗 下面是我的代码 $(document).ready(function () { var Folderid = "ab"; $('#fileupload').fileupload({ dataType: 'json', url:
$(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");
}
我的控制器代码如下
$(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");
}
[HttpPost]
公共ContentResult上载文件(字符串名称)
{
字符串FolderId=名称;
var r=新列表();
foreach(Request.Files中的字符串文件)
{
var allowedExtensions=new[]{.jpg“,.jpeg“,.bmp“,.icon”};
HttpPostedFileBase hpf=Request.Files[file]作为HttpPostedFileBase;
如果(hpf.ContentLength==0)
继续;
如果(!allowedExtensions.Contains(System.IO.Path.GetExtension(hpf.FileName.ToString()))
{
r、 添加(新上载文件结果()
{
Name=“”,
长度=0,
Type=“”
});
}
其他的
{
字符串savedFileName=Path.Combine(Server.MapPath(“~/Upload”)、Path.GetFileName(hpf.FileName));
hpf.SaveAs(savedFileName);
r、 添加(新上载文件结果()
{
Name=hpf.FileName,
长度=hpf.ContentLength,
Type=hpf.ContentType
});
}
}
返回内容(“{\”名称\“:\”+r[0]。名称+“\”,\”类型\“:\”+r[0]。类型+“\”,\”大小\“:\”+字符串。格式(“{0}字节”,r[0]。长度)+“\”,“应用程序/json”);
}
编辑或尝试在fileupload调用中将数据更改为formData,如下所示:
formData: { name: Folderid },
摘自。发现:这可能有一些用处。另外,我建议您提及您正在使用的库,fileUpload不是jQuery函数。@Swires,您能指定我的工作在哪里吗。。请回答可能的修复,但我的意思是fileUpload是一个独立的库,应该在问题中提及。当我第一次读到它时,我想‘我不知道jQuery处理文件上传!?’Swires,收到了非常感谢…你节省了我很多时间我真的很感谢你我用过这样的formData:{name:Folderid},没问题,很乐意帮助。我尝试过这样使用控制器,但在'Request.Form[“name”]'中出现空引用错误这不是有效的字符串Folderid=Request.Form[“name”]。您已经评论了链接正在工作,您提到了这个链接github.com/blueimp/jQuery File Upload/wiki/…所以如果您编辑了这个链接的答案,我会勾选答案