[英]Unable to read formData correctly server-side in ASP.NET
我使用JQuery Fileupload将文件从视图上传到.NET中的服务器。 我尝试将其他信息添加到上传中,这是页面中两个组合框的值。 我遵循了文档,并决定以编程方式在formData
添加组合框值。 但是,它没有按预期工作。
这是我的fileuploader
:
$('#fileupload').fileupload({
dataType: 'json',
url: '/Home/UploadFiles',
sequentialUploads: true,
multipart: true,
formData: { SectorCode: $('#comboSector').val(), AppName: $('#comboApp').val() },
autoUpload: true,
done: function (e, data) {
$('.file_name').html(data.result.name);
$('.file_type').html(data.result.type);
$('.file_size').html(data.result.size);
}
})
这是我的controller function
:
[HttpPost]
public ContentResult UploadFiles(string data)
{
string sector = Request.Form["SectorCode"];
string app = Request.Form["AppName"];
.....
}
这里的问题是扇区和应用程序都返回null。 但是,如果我选择传递{SectorCode: 3, AppName: myApp}
,则服务器端将具有良好的价值。 怎么了
编辑:
这是我相关的HTML部分:
<input id="fileupload" type="file" name="files[]" multiple accept="application/pdf">
请尝试以下操作,确保表单元素已定义name属性:
string sector = Request.Form["comboSector"];
string app = Request.Form["comboApp"];
并完全跳过formData
属性。
如果没有,请张贴您的html吗?
我建议使用以下用法。
您的HTML,(注意文件输入名称。它应该与模型匹配)
<select id="SectorCode" />
<select id="AppName"/>
<!-- The file input field used as target for the file upload widget -->
<input id="fileupload" type="file" name="files" multiple>
建立行动模型
public class FormData
{
public List<HttpPostedFileWrapper> files { get; set; }
public string SectorCode { get; set; }
public string AppName { get; set; }
}
然后像这样定义您的控制器动作
[HttpPost]
public JsonResult UploadFiles(FormData data)
{
...
}
为了附加其他表单数据,请使用fileuploadsubmit事件
$(function () {
'use strict';
// Change this to the location of your server-side upload handler:
var url = '@Url.Action("Upload","Home")';
$('#fileupload').fileupload({
url: url,
dataType: 'json',
done: function (e, data) {
// handle done event.
},
}).bind("fileuploadsubmit", function (e, data) {
data.formData = {
SectorCode: $("#SectorCode").val(),
AppName: $("#AppName").val()
};
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.