如何使用ajax在asp.net mvc中上载文件和其他模型值?

如何使用ajax在asp.net mvc中上载文件和其他模型值?,asp.net,ajax,model-view-controller,upload,Asp.net,Ajax,Model View Controller,Upload,我找到的所有文章都谈到使用非ajax表单post上载文件和文本值,或者只上载带有ajax post请求的文件。有没有一种方法可以使用ajax post将文件和文本值上传到mvc操作中,这样我就可以获得模型绑定和Request.files?在做了一些实验后,结果表明执行此操作的代码也没有那么复杂: var formData = new FormData($("form")[0]); $.post({ url: "/Home/Upload",

我找到的所有文章都谈到使用非ajax表单post上载文件和文本值,或者只上载带有ajax post请求的文件。有没有一种方法可以使用ajax post将文件和文本值上传到mvc操作中,这样我就可以获得模型绑定和Request.files?

在做了一些实验后,结果表明执行此操作的代码也没有那么复杂:

var formData = new FormData($("form")[0]);

        $.post({
            url: "/Home/Upload",
            contentType: false,
            processData: false,
            data: formData,
            success: function () {
                alert("done");
            }
        });

最棘手的部分是FormData对象的构造。实际上,只要所有输入都在表单标记内,就不需要手动添加文件和其他文本值。

还有一个技巧,就是表单标记内的所有输入元素都必须具有name属性才能包含在表单值中。