通过ajax发布请求接收图像接收该图像的类应该是什么

时间:2018-09-07 06:54:57

标签: c# ajax model-view-controller

这是我的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)
             {
             }

2 个答案:

答案 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)
{
}