这是我的ajax方法
fl = new FormData();
fl.append("abcd", $("#so_camera_click")[0].files[0]);
debugger;
$.ajax({
type: "POST",
url: "../SaleOrder/AddSaleOrderToDB",
dataType: "json",
traditional: true,
data: {
f:fl,
}});
C#控制器是
每次调试JavaScript时,id so_camera_click 就是<input type="file" accept="image/*"/>
, fl 变量中有数据,但是当它到达后端C#控制器时,它就会为空>
public JsonResult AddSaleOrderToDB(HttpPostedFileWrapper f)
{
}
答案 0 :(得分:1)
在您的Ajax请求中, 如下更改数据值,
$.ajax({
type: "POST",
url: "../SaleOrder/AddSaleOrderToDB",
traditional: true,
processData: false,
contentType: false
data: fl
});
使用正确的可读字段名称。 您的控制器需要文件而不是JSON数据。
答案 1 :(得分:0)
您将要发布FileData
而不是json
。
此外,为了使Controller映射您发布的值,该参数必须与POST所用的名称相同。
为使您的示例正常工作,您必须执行以下操作
fl = new FormData();
fl.append("file", $("#so_camera_click")[0].files[0]);
debugger;
$.ajax({
type: "POST",
url: "../SaleOrder/AddSaleOrderToDB",
data: fl,
contentType: false,
processData: false
});
在您的控制器中
public JsonResult AddSaleOrderToDB(HttpPostedFileWrapper file)
{
}