Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过jQuery Ajax将JSON和HttpPostedFile上载到MVC_Javascript_Jquery_Json_Ajax_Asp.net Mvc 5 - Fatal编程技术网

Javascript 通过jQuery Ajax将JSON和HttpPostedFile上载到MVC

Javascript 通过jQuery Ajax将JSON和HttpPostedFile上载到MVC,javascript,jquery,json,ajax,asp.net-mvc-5,Javascript,Jquery,Json,Ajax,Asp.net Mvc 5,在这种情况下,我如何将上传的文件发布到mvc控制器 Javascript $.ajax({ url: "/Home/CompleteAttendeeType", contentType: "application/json;charset=utf-8", dataType: "JSON", type: "POST", data: JSON.stringify({ //PostedFile: "I AM CONFUSED HOW TO UPLOAD?", Att

在这种情况下,我如何将上传的文件发布到mvc控制器

Javascript

$.ajax({
  url: "/Home/CompleteAttendeeType",
  contentType: "application/json;charset=utf-8",
  dataType: "JSON",
  type: "POST",
  data: JSON.stringify({
    //PostedFile: "I AM CONFUSED HOW TO UPLOAD?",
    AttendeeType: 1,
    LicenseNumber: $("#txtLicenseNumber").val(),
    LicenseState: $("#txtLicenseState").val(),
    SchoolName: $("#txtSchoolName").val(),
    SchoolLocation: $("#txtSchoolLocation").val()
  })
})
MVC

首先使用

然后,您需要以可以用JSON表示的格式来表示数据。如果数据是一个字符串,那么您可以直接使用它。否则,您将需要对其进行转换。这是一种方法

然后,您将在一个变量中包含数据,该变量可以包含在传递给JSON.stringify的对象中


如果将其编码为base64,则需要。

您可以使用FormData。查阅example@StephenMuecke-这不会给JSON带来什么好处output@Quentin,不知道你在说什么。OP可以序列化表单,也可以单独添加每个属性,例如formdata.appendLicenseNumber、$txtLicenseNumber.val;etc,它将绑定到控制器中的CompleteTentEndetyPereQuest模型。@StephenMuecke-请求的格式是application/json,而不是multipart/form数据。您无法从FormData objects中获取application/json。希望上载文件和属性,以便将它们绑定到模型。它不需要是JSON输出-但它确实需要工作,这就是链接答案所做的:
[HttpPost]
public JsonResult CompleteAttendeeType(CompleteAttendeeTypeRequest request)
{
  return Json(string.Empty, JsonRequestBehavior.AllowGet);
}

public enum AttendeeType
{
  Professional,
    Student,
    Owner,
    Guest
}

public class CompleteAttendeeTypeRequest
{
  public HttpPostedFile PostedFile { get; set; }
  public AttendeeType AttendeeType { get; set; }

  public string LicenseNumber { get; set; }
  public string LicenseState { get; set; }

  public string SchoolName { get; set; }
  public string SchoolLocation { get; set; }
}