我将表单数据发送到asp.net mvc中的web api控制器,但我的ajax请求每次遇到上述错误时都没有命中控制器,请告诉我如何在asp.net mvc中的ajax中发送文件请求web api控制器
$(document).on("submit", ".SignupForm", function (event) {
event.preventDefault();
var formData = new FormData($(".SignupForm"));
formData.append($('#imageFile')[0].files[0]);
$.ajax({
url: 'api/Countries',
type:'POST',
data: obj,
dataType: 'json',
processData: false,
success: function (result) {
console.log(result);
},
error: function (data, status, abc) {
console.log(data);
console.log(status);
console.log(abc);
}
});
});
答案 0 :(得分:1)
Easy的答案是对的,如果你不理解他的答案那就是你想要的。
formData.append('chooseAName', $('#imageFile')[0].files[0]);
答案 1 :(得分:0)
看到这个:(显然你必须添加参数)
SyntaxEDIT此方法有两个版本:一个是两个和三个 参数版本:
formData.append(name,value); formData.append(name,value,filename); 参数
name数据包含在值中的字段的名称。价值 场的价值。这可以是USVString或Blob(包括子类) 比如File)。 filename可选报告给服务器的文件名 (一个USVString),当Blob或File作为第二个参数传递时。 Blob对象的默认文件名是“blob”。默认文件名 for File对象是文件的文件名。 ExampleEDIT以下行创建一个空的FormData对象:
var formData = new FormData(); //当前为空您可以添加 使用FormData.append:
的键/值对formData.append('username','Chris'); formData.append( 'userpic', myFileInput.files [0],'chris.jpg'); 与常规表单数据一样,你可以 附加多个具有相同名称的值。例如(和 通过在名称中添加[]来兼容PHP的命名约定:
formData.append('userpic []',myFileInput1.files [0],'chris1.jpg'); formData.append('userpic []',myFileInput2.files [0],'chris2.jpg'); 这种技术使得处理多文件上传变得更加简单,因为 结果数据结构更有利于循环。
https://developer.mozilla.org/en-US/docs/Web/API/FormData/append