2016-09-09 1 views
0

Mon modèle -

public class Phasessfilter 
{ 
    public string Searchterm {get;set;} 
    public string ob1 {get;set;} 
    public string ob2 {get;set;} 
    public string ob3 {get;set;} 
    public List<string> ob4 { get; set; } 
    public List<string> ob5 { get; set; } 
} 

Controller -

public JsonResult GtRlts(Phasessfilter jop) 
    { 
    } 

c'est mon script

var recr = ""; 
    var study = ""; 
    var results = ""; 
    var phases1 = []; 
    var fund = []; 
    var values = { Searchterm: Searchterm, ob1: recr, ob2: study, ob3: results, ob4: phases1, ob5: fund } 

    $.post("GtRlts", values, function (abc) { 

    } 

donc je reçois des valeurs pour Terme de recherche , ob1, ob2, ob3 mais j'obtiens des valeurs nulles pour ob4 et ob5 .why est la liste ne prenant pas les valeurs de tableau ou je fais quelque chose de mal. P.S - je ne veux pas utiliser .ajax $

+0

Vous devez définir la liste en tant que paramètres. Liste jop – KinjalMistry

Répondre

3

Changez votre modèle à

public class Phasessfilter 
{ 
    public string Searchterm {get;set;} 
    public string ob1 {get;set;} 
    public string ob2 {get;set;} 
    public string ob3 {get;set;} 
    public List<string> ob4 { get; set; } 
    public List<string> ob5 { get; set; } 
    public Phasessfilter() 
    { 
     ob4 = new List<string>(); 
     ob5 = new List<string>(); 
    } 
} 
+0

bonne réflexion mais ça ne marche pas –

+1

@HimaanSingh je l'essaie et je reçois count = 0 non nul. Vous manquez quelque chose d'autre? – mayk

2

Hey le code écrit est absolument parfait, vous avez juste besoin de tester avec les valeurs et cela fonctionne très bien.

ici est un exemple de code Js

var searchterm = "test1"; 
    var recr = "test2"; 
    var study = "test3"; 
    var results = "test4"; 
    var phases1 = ["Test5","Test6"]; 
    var fund = ["Test6", "Test7"]; 
    debugger; 
    var values = { Searchterm: searchterm, ob1: recr, ob2: study, ob3: results, ob4: phases1, ob5: fund } 

    $.post(path + "/Dashboard/Home/GtRlts", values, function (abc) { 

    }); 

et la sortie pour un repos de référence du code est identique.

enter image description here

+0

envoyer phases1 = [] et le vérifier dans le débogage ob4 est null ou non dans le serveur. – mayk

+0

Oui, cela sera, bien entendu, nul, car il est recommandé d'initialiser toutes les propriétés de votre liste dans un constructeur, comme indiqué dans l'autre réponse. Mais ça ne va pas, d'une façon ou d'une autre, causer un problème en désérialisant l'objet JSON.so Pour éviter justement null, nous pouvons définir Phasessfilter comme indiqué par vous –

0

que vous venez définir variable tableau il obtenir la valeur null

var phases1 = []; 
var fund = []; 

Vous devez ajouter des éléments dans ce:

var phases1 = [1,2]; 
var fund = [3,4];