【发布时间】:2023-03-03 02:50:02
【问题描述】:
我想通过 jquery ajax 将 formData 发送到 api 控制器。 这是我的代码:
$("#btnReject").click(function() {
UploadData = new FormData();
UploadData.append('UserName',$("#txtUserName").val());
// HTML file input, chosen by user
UploadData.append("userfile", fileInputElement.files[0]);
$.ajax({
url: 'Api/DynamicForm/Reject',
dataType: "json",
type: "post,
contentType: false,
processData: false,
data: UploadData
});
}
和我的控制器代码:
public class DynamicFormController : ApiController
{
[System.Web.Http.HttpPost]
public IHttpActionResult Reject (DynamicFormDto model)
{
//some code
return Json(new isValid = true});
}
}
在 DynamicFormDto 中:
Public class DynamicFormDto
{
public string UserName {get; set;}
public string Model {get; set;}
}
我在客户端遇到了这个错误: 415:不支持的媒体类型
当我删除“contentType:false”时,错误已修复,但 在行动“模型”是空的。
我该怎么办?
【问题讨论】:
-
ModelBinder 在将多部分请求绑定到复杂类型时存在问题(因为它不起作用)。请参阅我标记的副本以获取更多信息。另请注意,您可以改为编写自己的自定义模型绑定器,see this answr 了解如何实现这一目标
-
@RoryMcCrossan,您是否选择了错误的欺骗目标? (这与 OP 的问题无关 - 他们已经在使用
FormData)
标签: javascript jquery ajax asp.net-mvc asp.net-web-api