如何通过jquery ajax将formData发送到api控制器

时间:2018-04-04 08:15:29

标签: javascript jquery ajax asp.net-mvc asp.net-web-api

我想通过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"错误已修复但是 在行动"模型"一片空白。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

 public class DynamicFormController : ApiController
{
    [System.Web.Http.HttpPost]
    public IHttpActionResult Reject ()
    {

      var name = HttpContext.Current.Request["UserName"];
      var httpPostedFile = HttpContext.Current.Request.Files["userfile"];
    //some code

        return Json(new isValid = true});
    }
}