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 Ajax Discussion :

Passer une liste d'objets dans une méthode ajax


Sujet :

ASP.NET Ajax

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Points : 106
    Points
    106
    Par défaut Passer une liste d'objets dans une méthode ajax
    Bonjour,

    Je voudrais appeler une méthode sur le serveur à partir du client mais il faut que je passe en paramètre une liste d'objet complexe et je ne sais pas quelle piste utiliser pour y arriver. ( Je suppose qu'il existe une autre manière que de boucler sois-même et de surcharger l'opérateur .ToString )

    Mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script type="text/javascript">
         jQuery(document).ready(function ($) {
             $(".js-saveSchedule").click(function () {
                 $.ajax({
                     type: "POST",
                     url: "<%= Url.Action("SaveSchedule", new { controller = "Edition" }) %>",
                     data: {"Model": "<%= Model.ScheduledItems  %>" }
                 }).done(function (json) {
                     console.log(json);
                 });
             });
         });
    </script>
    Model.ScheduledItems est une liste d'Item.


    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Bonjour,

    pourrais-tu préciser un peu le contexte ?
    Je pense que l'utilisation des PageMethods est toute indiquée dans ton cas.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    Bonjour,

    pourrais-tu préciser un peu le contexte ?
    Je pense que l'utilisation des PageMethods est toute indiquée dans ton cas.
    J'utilise le framework 3.5 mvc 2 ( La réponse m'intéresse aussi si c'est dans mvc 3) et donc je ne peux pas utiliser de composants.

    En fait ma question est plutot porté sur deux détails important :
    1. Envoi d'une liste
    2. Envoi d'objet complexe ( qui contient d'autres attributs )


    J'arrive donc à envoyer un paramètre simple de type string ou int mais pour envoyer une liste d'objet complexe, je ne vois qu'un traitement plus ou moins long pour écrire du JSON. Mais il existe peut-être des méthodes pour le faire pour moi ?

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Au temps pour moi, je n'avais pas repéré que tu étais en MVC.
    Pour le coup, je ne vais pas pouvoir t'aider.
    Regarde peut-être de ce côté.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Points : 106
    Points
    106
    Par défaut
    J'essaye de sérialiser moi-même la liste et cela ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [data:{\"Id\":\"12d87886-7e5c-4c14-9465-006237ed17fe\",\"Timer\":20,\"Position\":0,\"IdProfile\":\"00000000-0000-0000-0000-000000000000\",\"Item\":null},{\"Id\":\"3b48a55c-2d13-40d6-a708-041a2b55088d\",\"Timer\":20,\"Position\":0,\"IdProfile\":\"00000000-0000-0000-0000-000000000000\",\"Item\":null}]
    j'ai "hardcodé" cette chaine de caractères que j'ai obtenu avec la méthode JavaScriptSerializer.Serialize pour m'assure que je ne faisais pas d'erreur.

    Ma méthode serveur prend une liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void SaveSchedule(List<ScheduledItem> items)
    Y-a t'il une subtilité quand on envoi une liste ?

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/01/2010, 13h53
  2. trier une liste d'objets dans une ArrayList
    Par sandrine49 dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 13/10/2008, 08h59
  3. Chercher un objet dans une liste d'objet
    Par Axiome dans le forum Windows Forms
    Réponses: 5
    Dernier message: 10/10/2008, 09h43
  4. Réponses: 2
    Dernier message: 29/05/2008, 15h59
  5. Savoir si un objet d'une certaine classe est dans une liste
    Par Denti-fritz dans le forum Langage
    Réponses: 3
    Dernier message: 26/04/2007, 09h05

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