我的ajax使用了FormData并在单个(FormData)对象中附加了多个Field值(如Text-box,label,File)。我已经在服务器端发布了这些数据,但是
如何在控制器中接收相同的数据对象?
FormData变量:
var uploadFile = new FormData();
var files = $("#UploadFile").get(0).files;
if (files.length > 0) {
uploadFile.append("Doc", files[0]);
}
FileUpload(uploadFile);
Javasacript方法Ajax Call:
function FileUpload(uploadFile)
{
var url = '@Url.Action("UploadCsvFile")';
$.ajax({
url:url,
contentType: false,
processData: false,
data:uploadFile,
type: 'POST',
success: function () {
alert("Successfully Added & processed");
}
});
我的问题是....如果以防万一,我的ajax有更多的数据,如何在控制器端接收相同的数据以及如果我想使用特定的数据对象。
答案 0 :(得分:0)
您可以接收非常复杂的自定义表单
它将分为两部分:
第1部分 - 扩展html FormData:
uploadFile.append("TextData", "This is my text data");
第2部分 - 扩展您的控制器:
我认为你的模型看起来像这样:
public class MyModel
{
public HttpPostedFileBase Doc{ get; set;}
}
现在只需将自定义数据添加到其中:
public string TextData {get;set;}
在你的控制器方法中:
public JsonResult MyUploadMethod(MyModel model)
{
/*From here you will have access to the file and the text data*/
}
希望它有所帮助。如果您需要帮助,请向我提问。