如何使用 FormData(Ajax) 在控制器端接收多个数据?

How to receive multiple Data in controller side using FormData(Ajax)?

我的 ajax 使用了 FormData 并在单个 (FormData) 对象中附加了多个字段值(如文本框、标签、文件)。我已经在服务器端发布了该数据,但是

如何在控制器中接收相同的数据对象?

表格数据变量:

var uploadFile = new FormData();
        var files = $("#UploadFile").get(0).files;
        if (files.length > 0) {
            uploadFile.append("Doc", files[0]);
        }
  FileUpload(uploadFile);

Javasacript 方法Ajax调用:

 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 有更多数据,如何在控制器端接收相同的数据,以及如果我想使用特定的数据对象怎么办。

您可以收到非常复杂的定制表格

它将分两部分工作:

第 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*/
}

希望对您有所帮助。如果您需要帮助,请问我。