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 :

envoyer une liste conditionnée à une vue [Débutant]


Sujet :

ASP.NET MVC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 65
    Points : 48
    Points
    48
    Par défaut envoyer une liste conditionnée à une vue
    Bonjour,

    Je voudrai passer à ma vue une liste d'enregistrements de ma base de données spécifique :

    Je veux afficher, par exemple, la liste de tous les clients dont le code postal est 69008 .

    Comment faire sachant que dans mon contrôleur j'ai simplement ce code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public ActionResult Index()
            {
                return View(db.CLIENTS.ToList());
            }
    Je souhaiterai programmer ça par le contrôleur si possible...

    D'avance merci.

    Cordialement

  2. #2
    Membre éprouvé Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Points : 947
    Points
    947
    Par défaut
    Salut,

    Tu dois surement avoir une propriété "CodePostal" dans la liste de clients.
    Donc, très simplement, on peut écrire :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public ActionResult Index()
    {
          return View(db.CLIENTS.Where(o => o.CodePostal == "69008").ToList());
    }

    La vue aura tous les clients qui ont un code postal égal à 69008.

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 65
    Points : 48
    Points
    48
    Par défaut
    Nickel !!!

    Merci.

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 65
    Points : 48
    Points
    48
    Par défaut
    Question subsidiaire :

    Comment intégrer ce code postal en tant que paramètre ?

    Supposons que l'utilisateur veuille faire une recherche par code postal dans la liste des clients depuis un formulaire de recherche.

    On obtiendra dans le contrôleur un Request.Form["code_postal"]...

    Comment l'intégrer dans la "requête" ?

    J'ai tenté ce code mais j'ai un message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    string lo_chaine ="";
     
    if (Request.Form["nom_client"].ToString() != "")
    {
          lo_chaine = "o => o.CC_CP==" + Request.Form["nom_client"].ToString();
    }
     
    return View(db.CLIENTS_ADR.Where(lo_chaine));
    erreur : System.Data.Entity.DbSet<xxxxxxxxx.Models.CLIENTS_ADR>' ne contient pas une définition pour 'Where' et la meilleure surcharge de la méthode d'extension 'System.Linq.Enumerable.Where<TSource>(System.Collections.Generic.IEnumerable<TSource>, System.Func<TSource,int,bool>)' contient des arguments non valides

    Cordialement

  5. #5
    Membre éprouvé Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Points : 947
    Points
    947
    Par défaut
    La méthode where attend un predicate donc tu ne peux pas mettre une chaîne.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    string codePostal = Request.Form["code_postal"];
    List<CLIENTS_ADR> clients = new List<CLIENTS_ADR>();
    if (!String.IsNullOrEmpty(codePostal))
    {
        clients = db.CLIENTS_ADR.Where(o => o.CC_CP == codePostal).ToList();
    }
    else
    {
        // Que faire s'il n'y a pas de code postal ?
    }
     
    return View(clients);

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 65
    Points : 48
    Points
    48
    Par défaut
    Merci de ta réponse yonpo.

    Effectivement ta solution est viable ... pour 1 critère de recherche mais si comme moi tu peux avoir jusqu'à 5 ou 6, c'est ingérable avec des if (à mon avis maintenant je peux me tromper )

    Je faisais ainsi en asp : en fonction des champs renvoyés depuis le module de recherche, je créais ma requête SQL dans une chaîne et en avant Guinguamp.

    Citation Envoyé par yonpo Voir le message

    // Que faire s'il n'y a pas de code postal ?
    Je peux afficher une page d'avertissement où équivalente.

    Aurais tu une solution alternative pour mon problème de requête dynamique ?

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Lisp][IA] Supprimer une liste d'une liste de listes
    Par Superleo2999 dans le forum Lisp
    Réponses: 5
    Dernier message: 22/03/2010, 10h51
  2. Réponses: 12
    Dernier message: 12/09/2007, 16h28
  3. [PRBL]Caste une liste d'une liste d'objet
    Par stephane92400 dans le forum Langage
    Réponses: 4
    Dernier message: 07/08/2007, 21h01
  4. Appel d'une liste dans une liste (JSTL)
    Par abalgue dans le forum Hibernate
    Réponses: 4
    Dernier message: 15/06/2007, 10h56
  5. STL : retirer une liste d'une liste
    Par DEVfan dans le forum SL & STL
    Réponses: 13
    Dernier message: 05/01/2007, 20h49

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