Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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 为什么我的ajax不发送上传到控制器端的图像?_Javascript_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

Javascript 为什么我的ajax不发送上传到控制器端的图像?

Javascript 为什么我的ajax不发送上传到控制器端的图像?,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,我使用jQueryAjax将模型和图像一起发送到我的控制器。 这是我的表格 @using (Html.BeginForm(null, null, FormMethod.Post, new { id = "CreateUser" ,enctype = "multipart/form-data" } )) { @Html.AntiForgeryToken(); @Html.ValidationSummary(true)

我使用jQueryAjax将模型和图像一起发送到我的控制器。 这是我的表格

  @using (Html.BeginForm(null, null, FormMethod.Post, new { id = "CreateUser" ,enctype = "multipart/form-data" } ))
        {

            @Html.AntiForgeryToken();
              @Html.ValidationSummary(true)
               <fieldset>
               <div class="row">
                    <div class="col-xs-6">
                        @*----FIRST NAME----*@
                        <label>
                            First Name <span class="text-red font12">*</span>
                        </label>
                        @Html.TextBoxFor(model => model.FirstName, new { @class = "form-control", id = "txtFirstName", @maxlength = "30" })
                    </div>


                    <div class="col-xs-6">
                        @*----LAST NAME----*@
                        <label>
                            Last Name <span class="text-red font12">*</span>
                        </label>

                        @Html.TextBoxFor(model => model.LastName, new { @class = "form-control", id = "txtLastName", @maxlength = "30" })
                    </div>

               <div class="col-xs-6">
                        @*----Logo Upload----*@

                        <label>
                           Logo Uploaad <span class="text-red font12">*</span>
                        </label>
                        <div class="input-group">


                            <input type="file" id="FileUpload1" />

                        </div>

                    </div>
                </div>

        <div class="row">
                    <div class="col-xs-4" style="float:right;">
                        <input type="button" value="Save" class="btn btn-primary btn-block btn-flat" onclick="validateandcreate();" />
                    </div>
                </div>

您需要在ajax上设置
processData:false
contentType:false
,以便通过

您还可以将文件以外的数据添加到
FormData

var formdata = new FormData();
formdata.append("file", fileobject);
formdata.append("model", JSON.stringify({
  name: "Johny",
  lastname: "Good"
}));

$.ajax({
  url: '/User/Create',
  method: 'post',
  dataType: 'json',
  contentType: false,
  processData: false,
  data: formdata,
  success: function(data) {
    alert("success");
  },
  error: function(err) {

    alert("error");
  }
});

请参见

您需要在ajax上设置
processData:false
contentType:false
,以便通过

您还可以将文件以外的数据添加到
FormData

var formdata = new FormData();
formdata.append("file", fileobject);
formdata.append("model", JSON.stringify({
  name: "Johny",
  lastname: "Good"
}));

$.ajax({
  url: '/User/Create',
  method: 'post',
  dataType: 'json',
  contentType: false,
  processData: false,
  data: formdata,
  success: function(data) {
    alert("success");
  },
  error: function(err) {

    alert("error");
  }
});

请参见

,但我想在一个ajax Post中传递模型(firstname,lastname)和文件数据(上传的图像)。只有当我将上传的图像发送到控制器时,上述解决方案才有效。您可以在formdata中添加任意数量的数据。将模态对象作为字符串化json附加到formdata并在服务器端对其进行解析,或者将其键值对作为单独的键值对附加到formdata中。无论你选择哪一个都有效。我更新了显示如何随文件一起发送其他数据的答案。我现在在客户端上只收到此错误。即,通过ajaxI发布时未定义fdata have used和var fdata=new FormData();虽然如此,但我想在一个ajax Post中传递模型(firstname,lastname)和文件数据(上传的图像)。只有当我将上传的图像发送到控制器时,上述解决方案才有效。您可以在formdata中添加任意数量的数据。将模态对象作为字符串化json附加到formdata并在服务器端对其进行解析,或者将其键值对作为单独的键值对附加到formdata中。无论你选择哪一个都有效。我更新了显示如何随文件一起发送其他数据的答案。我现在在客户端上只收到此错误。即,通过ajaxI发布时未定义fdata have used和var fdata=new FormData();thoughNote您还需要提供文件输入
name=“file\u Uploader”
注意您还需要提供文件输入
name=“file\u Uploader”
var formdata = new FormData();
formdata.append("file", fileobject);
formdata.append("model", JSON.stringify({
  name: "Johny",
  lastname: "Good"
}));

$.ajax({
  url: '/User/Create',
  method: 'post',
  dataType: 'json',
  contentType: false,
  processData: false,
  data: formdata,
  success: function(data) {
    alert("success");
  },
  error: function(err) {

    alert("error");
  }
});