这是我在这里的第一个问题所以请保持温和......我有一个cshtml(ASP.NET MVC 5)页面,我想将文件上传到我已经存储到的某些行(在页面上的dataTable中)一个json。 json看起来像这样:
JSON:
var jsonDataIds = [
{"Id":"9f835451-14ba-e511-a63e-643150188f7f",.. more data},
{"Id":"a0835451-14ba-e511-a63e-643150188f7f",.. more data},
{"Id":"a1835451-14ba-e511-a63e-643150188f7f",.. more data}];
我正在使用blueimp fileupload来处理文件上传。
这是在我的页面中初始化元素的脚本:
使用Javascript:
$("#inFile").fileupload({
url: 'attachFile',
dataType: 'json',
formData: {ecId:jsonDataIds,usrId:"@User.GetId()"},
add: function(e, data) {
fileData = data;
},
done: function(event, data) {
alert(data.message);
},
fail: function(event, data) {
alert("Error uploading the file.");
}
});
$("#btnUpload").on('click', function() {
if(fileData){
fileData.submit();
}
});
当我签入控制器attachFile
时,收到usrId
,收到文件,但不收到ID。
我认为可能存在限制,您只能发送字符串而不是json对象。
控制器 :(部分)
public ActionResult attachFile(List<MyModel> ecId, string modUsrId)
// modUsrId is ok, ecId is NULL
{
for (int i = 0; i < Request.Files.Count; i++)
// Request.Files.Count is ok
答案 0 :(得分:0)
通过将json对象作为字符串发送然后在控制器端序列化来修复“问题”。