次の 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);
}
});
ただし、根本的に異なる contentTypes であるため、同じ呼び出しで 2 つを別々のパラメーターとして組み合わせることはできないようです。
これは可能ですか?私はこれについて間違った方法で進んでいますか?どんな助けでも大歓迎です。