我正在尝试通过使用formData的ajax调用向Web api发送文件和一些参数值。这是我的ajax电话。
var dataToPost = new FormData();
dataToPost.append("file", file);
dataToPost.append("placeId", "1");
$.ajax({
type: "POST",
url: "/api/Post/SharePost",
processData: false,
contentType: false,
dataType: "json",
data: dataToPost,
success: function () { },
error: function () {}
});
这是我的web api控制器
[HttpPost]
public IHttpActionResult PostSharePost(HttpPostedFileBase file, string placeId)
{
//var file2 = HttpContext.Current.Request.Files["file"];
//var placEId = HttpContext.Current.Request["placeId"];
return null;
}
当我执行ajax时,我可以从Request.Files [" file"]和Request [" placeId"]中检索数据。但我想将数据映射到方法的参数。但是当我向" PostSharePost"添加参数时方法,ajax调用返回404错误。如何将数据映射到web api控制器方法中的参数?
因为当我使用mvc控制器执行相同的操作时,它工作正常,例如当我使用相同的设置向mvc控制器发送ajax调用时,如下所示
[HttpPost]
public ActionResult SharePost(HttpPostedFileBase file, string placeId)
{
//here the data maps to file and placeId
return null;
}
为什么ajax调用mvc控制器和web api控制器的行为有所不同,如何将数据映射到web api控制器的参数?
谢谢你们;