MVC

2016-03-30 18 views
1
JQuery ajax form.serialize() kullanarak HttpPostedFileBase alanını gönderme MVC project.I üzerinde çalışıyorum

form altındaki Beğen sahipMVC

public class SendViewModel 
{ 
    //I have about 20 filed's of other types here 
    ..... 

    //Image file 
    public HttpPostedFileBase Image { get; set; } 

} 

Benim JQuery ajax:

:

$("#send_ticket").click(function() { 
     var form = $("#form_send_ticket"); 

     $.ajax({ 
      type: "POST", 
      url: '@Url.Action("Send", "Ticket")', 
      data: form.serialize(), 
      contentType: "multipart/form-data", 
      success: function (data) { 
       //do something 
      }, 
      error: function (e) { 
       //do something 
      } 
     }); 
    }) 

Benim Kontrolörü Eylem böyledir

Bu durumdan önce karşılaştığım, diğer projelerde, çoğunlukla resim dosyası da dahil olmak üzere yaklaşık 3 ila 8 alanım vardı ve bunları birer birer FormData'a ekledim (bu Resim dosyası yüzünden) onları ajax isteği ile ve benim için önemli değildi, ama şimdi yaklaşık 22 alanın var ve bunu yapmak için biraz var. Bu formu serileştirmeye karar verdim ve ajax isteğiyle yolladım. ViewModel'de HttpPostedFileBase türünü yapıyorum. data: form.serialize() kullanarak bu alanı nasıl göndereceğiniz hakkında bir fikriniz var mı? temizleyeyim bir noktada edelim:

yardımına :)

Güncelleme takdir

1-ajax yoluyla göndermek FormData istemiyorum ve ben form.serialize() kullanarak göndermek istiyorum.

2-Hazır dosya eklentileri kullanmak istemiyorum.

3 -Bir tek bir resim alanı anlamına gelmez, yani 23 alanın tamamını oluşturur. Eğer FormData kullanacağız veya dahili olarak iFrame uygulamaları kullanan bazı eklentiler sürece

+0

Olası çoğaltılabilir [Nasıl zaman uyumsuz olarak dosya yükleyebilirim?] (Http://stackoverflow.com/questions/166221/how-can-i-upload-files-asynchronously) – pwas

+1

Lütfen tüm soruyu okuyun. sağlanan, ajax ile göndermek için FormData kullandım ve form.serialize() kullanarak göndermek istiyorum, onlar için bazı hazır eklentileri dosyaları önerdi ve yapmak istiyorum, Onlar sadece bir görüntü alanı işaret ve tüm formu demek. –

+1

Bkz. [Bu yanıt] (http://stackoverflow.com/questions/29293637/how-to-append-whole-set-of-model-to-formdata-and-obtain-it-in-mvc/29293681#29293681) - basitçe "var formdata = new FormData ($ ('form'). get (0));' dosya formları dahil tüm formunuzu serileştirmek için - bunları tek tek eklemeniz gerekmez. –

cevap

0

Sen posta/jQuery Ajax kullanarak bir dosyayı yükleyemezsiniz.