2016-05-04 5 views
-1

Ich versuche Formdata Fileupload mit Ajax und Jquery zu meinem Controller zu übergeben.Pass fromdata mit Datei von jquery, AJAX zu Controller in asp.net mvc

Aber wenn ich in der Steuerung bin, ist der Request.files.count 0 ??

Was fehlt mir?

Die Ansicht Datei

<div class="form-group"> 
        @Html.LabelFor(model => model.ImageFile) 

         <!-- Example file element --> 
         <input type="file" name="FileUpload1" id="FileUpload1" /> 

       </div> 

<script type="text/javascript"> 
    jQuery(document).ready(function ($) { 
     $('#loginButton').click(function (e) { 
      e.preventDefault(); 
      var formData = new FormData(); 
      var totalFiles = document.getElementById("FileUpload1").files.length; 

      var file = document.getElementById("FileUpload1").files[0]; 
      formData.append("FileUpload", file); 
      alert(totalFiles); 
      alert(file); 

     $.ajax({ 
      type: "POST", 
      url: '/Manage/GetPartialView)', 
      data: $formData, 
      dataType: 'json', 
      contentType: false, 
      processData: false, 
      success: function (result) { 
       alert(result); 
      }, 

     }); 
    }); 
    }); 

Der Controller

[AllowAnonymous] 
    [ValidateAntiForgeryToken] 
    [HttpPost] 
    public ActionResult GetPartialView(Listing listing) 
    { 
     if (Request.Files.Count > 0) 
     { 
      HttpPostedFileBase file = Request.Files[0]; 
     } 


     if (ModelState.IsValid) 
     { 
      db.Listings.Add(listing); 
      db.SaveChanges(); 
     } 
     return PartialView("_ProfileCreateListingsPartial"); 
    } 

Hoffnung jemand mir /Tina Diese

+0

'data: $ formData' sollte' data: formData' sein (Sie haben keine Variable namens '$ formData'). Und was ist der Sinn des Parameters "Listing Listing" - Sie geben nichts in Bezug auf dieses Modell zurück? –

+0

Und wenn Sie das Modell und die Datei übergeben möchten, beziehen Sie [diese Antwort] (http://stackoverflow.com/questions/29293637/how-to-append-whole-set-of-model-to-formdata- und-erhalte-es-in-mvc/29293681 # 29293681) –

+0

Ich benutze ein begin Formular, so bekomme ich das Notierungsmodell – tinaw25

Antwort

1

Verwenden helfen könnte, mit diesem Problem:

jQuery(document).ready(function ($) { 
    $('#loginButton').click(function (e) { 
     e.preventDefault(); 
     var formData = new FormData(); 
     var totalFiles = document.getElementById("FileUpload1").files.length; 

     var file = document.getElementById("FileUpload1").files[0]; 
     formData.append("FileUpload", file); 
     alert(totalFiles); 
     alert(file); 

    $.ajax({ 
     type: "POST", 
     url: '/Manage/GetPartialView', 
     data: formData, 
     dataType: 'json', 
     contentType: false, 
     processData: false, 
     success: function (result) { 
      alert(result); 
     }, 

    }); 
}); 


}); 
+0

Es ist immer noch 0 in meinem Controller – tinaw25

+0

seine Arbeit für mich. Lass mich ein paar Bilder teilen –