2015-08-22 3 views
0

Я пытаюсь отправить значения контроллеру через пост ajax. Здесь моя проблема в том, что я использую метод Serialize для публикации значений формы. Мне также нужно отправить изображения. Как я могу отправлять изображения и формировать данные, и какой должен быть метод контроллера, который принимает оба файла и значения модели?Как разместить серийный объект и несколько изображений в сообщении ajax?

Я получаю все текстовые значения, как этого

var files = $("#formid").serialize(); 

Я получаю изображение, как этот

var form1Data = new FormData(); 
var totalFiles = document.getElementById("files").files.length; 
    for (var i = 0; i < totalFiles; i++) { 
     var file = document.getElementById("files").files[i]; 
     form1Data.append("files", file); 
    } 

В Ajax вызова я должен послать оба файла и FormData. Как отправить запрос ajax

$.ajax(
     { 
      url: "/Home/PostanAd/", 
      type: "POST",     
      data: { form1Data: form1Data, files: files }, 
      contentType: false, 
      processData: false, 
     }); 

Может кто-нибудь предложить ответ?

+1

возможно дубликат [как добавить весь набор моделей в formdata и получить его в MVC] (http://stackoverflow.com/questions/29293637/how-to-append-whole-set-of-model-to-formdata-and-obtain-it -in-mvc) –

ответ

0
var formData = new FormData(); 

// Для каждой вашей формы входы используют эту линию

form_data.append("name1", $("#id1").val()); 

// Теперь Добавить все изображения в форму объекта данных

var totalFiles = document.getElementById("files").files.length; 
for (var i = 0; i < totalFiles; i++) { 
    var file = document.getElementById("files").files[i]; 
    formData.append("files[]", file); //Use [] to add multiple. 
} 

// Тогда просто сделать простой вызов AJAX данные: formData only

$.ajax(
      { 
       url: "/Home/PostanAd/", 
       type: "POST", 

       data: formdata, 
       contentType: false, 
       processData: false, 
+0

Как я могу получить значения в модели? или я должен использовать httppostedfilebase ?? – win2

+0

вы можете использовать $ _FILE для чтения загруженных файлов. и запустите цикл для доступа ко всем файлам –

+0

спасибо, он сработал – win2

Смежные вопросы