2016-07-15 1 views
-1

mon modèle:appel ajax envoi valeur null au contrôleur

public class Hello 
{ 
    public List<string> name; 
    public List<string> phone; 
    public List<string> contact; 

} 

mon code contrôleur est

public ActionResult Home(Hello obj) // obj is coming out to be null 
    { 

    } 

mon script est

 var names =[]; 
    var phones =[]; 
    var contacts = []; 

    // some code to fill the arrays 

    var obj = [{ 
      name: names, 
      phone: phones, 
      contact: contacts, 
      }]; 
     debugger; 
     $.ajax({ 
      cache: false, 
      url: 'Home', 
      data: { obj:obj }, 
      success: function (data) { 
       var response = JSON.parse(data); 
       window.location = 'Download?fileGuid=' + response.FileGuid 
            + '&filename=' + response.FileName; 
      } 
     }) 

je peux voir dans le débogueur que les données sont stocké dans les tableaux, mais quand j'envoie des données au contrôleur de l'obj est nul quelqu'un peut-il suggérer où je vais mal?

Répondre

1

Vous avez un objet dans le code, donc ne passez pas le tableau de l'objet Hello.

Et également utiliser la requête POST car la requête GET n'a pas de corps de message.

S'il vous plaît utiliser ci-dessous

var obj = { 
      name: ['1', '2', '3'], 
      phone: ['234324', '34343243', '3434234234'], 
      contact: ['Test1', 'Test2', 'Test3'] 
     }; 
     debugger; 
     $.ajax({ 
      type:'POST', 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      url: 'Home', 
      data:JSON.stringify({ obj: obj }), 
      success: function (data) { 
       var response = JSON.parse(data); 
       // window.location = 'Download?fileGuid=' + response.FileGuid 
            + '&filename=' + response.FileName; 
      } 
     }) 


public class Hello 
{ 
    public List<string> name { get; set; } 
    public List<string> phone { get; set; } 
    public List<string> contact { get; set; } 

} 
+0

la valeur de l'objet est jusqu'à venir être nul –

+0

Pouvez-vous s'il vous plaît coller votre code ici afin que je puisse vous donner une meilleure solution –

-1

En fait, je résolu le problème, je devais mettre

traditionnel: true,

dans mon ajax appel