2010-11-04 16 views
2

je le Data- suivantPasser une valeur de liste avec un GET dans asp.net mvc?

IList<int> mylist= new List<int>(); 
    int value=0; 
    ViewData["URL"] = "/Services/Getdata/?value="+&value+"&mylist="+mylist; 

    // It hits this function 
    public void Getdata(int value,IList<int> mylist) 
    {} 

Maintenant, le problème est la liste n'est pas passé au-dessus correctement ... Je fais un S'Y RENDRE et ne peut pas afficher les données ... maintenant je sais qu'il a à certains comment le passer comme &mylist[0]=2&mylist[1]=3..so on ... Alors, comment pouvez-vous atteindre cela ... J'ai trouvé this mais y at-il d'autres alternatives?

S'il vous plaît aidez-moi ici .. Je ne peux pas vraiment utiliser TempData dans mon cas..tout ce que je veux, c'est de passer une liste ou un tableau à travers fil dans asp.net mvc? Est-ce que quelqu'un a déjà fait quelque chose comme ça?

+1

Êtes-vous contre l'utilisation TempData? – Mayo

+0

Oui ... Je ne peux pas vraiment utiliser TempData dans mon cas .. Je passe cette URL à. Swf qui l'utilise ... – Vishal

Répondre

2

Vous pouvez utiliser la fonction suivante pour sérialiser votre liste à une chaîne:

public string Serialize(System.Collections.Generic.IList<int> list, string paramName) { 
    return String.Join("&", list.Select((value, index) => String.Format(CultureInfo.InvariantCulture, "{0}[{1}]={2}", paramName, index, value))); 
} 
+0

qui fonctionne pour moi maintenant .. – Vishal

+0

un léger problème que j'ai est que je suis en train de passer deux listes ... et en quelque sorte il ne le fait pas bien quand je le fais ... il passe la même liste dans les deux listes (le second) ... – Vishal