IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET MVC Discussion :

Comment passer un tableau Javascript en parametre d'une action


Sujet :

ASP.NET MVC

  1. #1
    Membre actif
    Inscrit en
    Avril 2006
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 346
    Points : 252
    Points
    252
    Par défaut Comment passer un tableau Javascript en parametre d'une action
    Bonjour,

    je suis en train de développer une application Web à l'aide d'ASP.NET MVC.
    J'ai développé un formulaire contenant entre autres des textbox des dropdownlist, etc..
    L'utilisateur doit aussi ajouter un ensemble d'éléments sélectionnables dans une dropdownlist. J'ai donc choisi d'utiliser un tableau Javascript pour stocker l'ensemble des éléments sélectionnés par l'utilisateur.
    Lorsque l'utilisateur valide le formulaire, une action d'un contrôleur est appelé. La signature de la méthode est définie ci-dessous:
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult CloseRequest(CloseRequestViewModel closeRequestVM, string[] elements);
    L'objet closeRequestVM est non null. Les valeurs des propriétés de cet objet correspondent aux saisies que l'utilisateur a fait dans les Textbox.
    En revanche, le tableau d'éléments correspond au tableau JavaScript que j'aimerais récupérer dans mon action. Hors lui est toujours NULL. Et pour cause, je ne sais pas comment le passer en paramètre.

    Comment puis-je faire svp ?

    Merci d'avance,
    Zoax

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 62
    Points : 133
    Points
    133
    Par défaut
    Bonjour zoaax,

    de mémoire il y a plusieurs façons !

    Pour ma part, la dernière fois que j'ai du le faire, j'ai +- procédé comme ceci :

    - coté client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var results = new Array();
    results.push(xxxx);
    [--> je ne connais pas ton implémentation mais nous avons donc un tableau JS pour l'exemple qui va suivre...]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $.ajax({
         type: 'POST',
         url: 'UrlVisée',
         dataType: 'json',
         data: { 'results' : JSON.stringify(results) }
    });
    - coté serveur :

    La méthode avec "(..., string results)"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var js = new JavaScriptSerializer();
    var list = js.Deserialize<List<TypeCorrespondant>>(results);

    Bon, j'espère que c'est plus ou moins clair Je ne dis pas que c'est LA façon de faire et il faudra un peu adapter ton code mais ça fonctionne

  3. #3
    Membre actif
    Inscrit en
    Avril 2006
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 346
    Points : 252
    Points
    252
    Par défaut
    Bonjour,

    merci pour la réponse.
    J'avais essayé avec la méthode stringify mais le paramètre closeRequestVM restait tout le temps NULL.

    Pour résoudre le problème je rajoute un champ hidden à chaque fois qu'un nouvel élément est ajouté au tableau. Chaque champ hidden possède le même nom elements.
    Ainsi, lorsque le formulaire est validé, je récupère en paramètre de l'action appelée les données du formulaire sous le paramètre closeRequestVM et le tableau sous le paramètre elements.

    Que penses-tu de cette solution ?

    Merci d'avance,
    Zoax

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/07/2013, 17h30
  2. Réponses: 0
    Dernier message: 17/02/2013, 20h27
  3. passer un tableau php en parametre d'une fonction js
    Par maxwel56 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/05/2012, 16h51
  4. comment passer un tableau à une fonction javascript
    Par beegees dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/03/2009, 19h48
  5. passer un tableau dynamique en parametre...
    Par annecyrond dans le forum Langage
    Réponses: 5
    Dernier message: 07/03/2003, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo