我正在使用 ASP.NET Web API。如果没有参数,我的控制器中有一个动作可以正常工作。如果有参数,比如:
public string UploadFile(string actionType)
然后我的操作没有被调用,我收到以下消息,在 Fiddler 中查看:
没有“MediaTypeFormatter”可用于读取媒体类型为“multipart/form-data”的“String”类型的对象
我的路线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);
}
这是一个已知问题,有解决方法吗?我怎样才能有一个带参数的简单动作?