ASP.NET Web API を使用しています。パラメーターがない場合に正常に動作するアクションがコントローラーにあります。次のようなパラメータがある場合:
public string UploadFile(string actionType)
次に、アクションが呼び出されず、Fiddler で表示された次のメッセージが表示されます。
メディア タイプ「multipart/form-data」でタイプ「String」のオブジェクトを読み取るために使用できる「MediaTypeFormatter」はありません
私のルートはglobal.asx
次のとおりです。
"api/{controller}/{action}/{actionType}"
アクションを呼び出すために Jquery Post を使用しています。
function upload() {
var actiontype = $("input:radio[name=actiontype]").val();
var formData = new FormData($('form')[0]);
$.ajax({
url: 'api/uploads/uploadfile/' + actiontype,
type: 'POST',
success: function (data) {
$("#mydiv").append(data);
},
error: function (data) {
$("#mydiv").append(data);
},
data: formData,
cache: false,
contentType: false,
processData: false
});
};
これが私のアクションメソッドです:
public string UploadFile(string actionType)
{
if (Request.Content.IsMimeMultipartContent())
{
//Save file
MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(HttpContext.Current.Server.MapPath("~/Files"));
Request.Content.ReadAsMultipartAsync(provider);
}
return string.Format("Action {0} Complete!", actionType);
}
これは既知の問題で、回避策はありますか? パラメータを使用して簡単なアクションを作成するにはどうすればよいですか?