我正在尝试将客户端发布到以下 MVC 操作方法:
[HttpPost]
public void Create(ProductModel product, HttpPostedFileBase imageFile)
{
productServices.AddProduct(product, imageFile);
}
使用 type="submit" 按钮很简单,但是在我的特殊情况下,我需要使用 ajax 调用来完成。
我可以很容易地将 ProductModel 作为 JSON 传递。
$.ajax({
url: '/Product/Create',
type: 'POST',
data: JSON.stringify({product: {
Id: 1,
Name: "SomeName"
}
}),
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert("Product Created!");
}
});
我也可以将文件作为 FormData 传递
var imageFileData = new FormData();
imageFileData.append('imageFile', myFileObject);
$.ajax({
url: '/Product/Create',
data: imageFileData,
cache: false,
contentType: false,
processData: false,
type: 'POST',
success: function (data) {
alert(data);
}
});
但是,我似乎无法在同一个调用中将 2 组合为单独的参数,因为它们是根本不同的 contentTypes。
这可能吗?我会以错误的方式解决这个问题吗?任何帮助,将不胜感激。