通过Ajax将文件上传发送到Odata POST

时间:2019-07-01 07:24:23

标签: c# ajax odata multipartform-data

如何使用ajax将文件输入发送到OdataController。 OdataController是使用模型生成的。我对使用FormData或对象数据感到困惑。我已经使用了这些,但仍然没有将参数传递给Odata控制器POST。我应该使用什么contentType,cache,enctype,contentType,processData 注意:我不想更改控制器参数。请不要在控制器中更改参数

Javascript:

function insertData() {
  var formData = new FormData();
  formData.append('photo', $('#PhotoInput')[0].files[0]);
  formData.append('EmployeeName', $('#txtName').val());
  var data = {
    EmployeeName: $('#txtName').val(),
    Photo: $('#PhotoInput')[0].files[0]
  }
  $.ajax({
    method: "POST",
    url: routePath + "odata/OdataEmployees",
    processData: false,
    //contentType: false,
    //cache: false,
    //enctype: 'multipart/form-data',
    //contentType: "application/json;odata=verbose",
    data: data,
    success: function (response) {
    }

控制器

// POST: odata/OdataEmployees
public IHttpActionResult Post(Employee employee)
{
  if (!ModelState.IsValid) 
    return BadRequest(ModelState);
  db.Employees.Add(employee);
  db.SaveChanges();
  return Created(employee);
}

0 个答案:

没有答案