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 :

probleme de cast


Sujet :

ASP.NET MVC

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Points : 92
    Points
    92
    Par défaut probleme de cast
    Salut
    je voudrais recuperer le contenu d'une de mes table de ma BD sur forme de liste et affiche ceci dans un DropDownlist. Pour ce faire j'ai crée une list et recuperer le contenu. Toutefois je rencontre un probleme au niveau de la cast. On m'informe qu'il est impossible de cast un objet de type 'System.Collections.Generic.List`1[MvcApplication3.Models.Coef]' en un objet de type 'System.Collections.Generic.List`1[System.Int16]'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    //mon controller
     
     public ActionResult AddNote()
            {
     
                List<Int16> coef = new List<Int16>();
                ViewData.Model = _db.Coefs.ToList();
                coef =(List<Int16>)ViewData.Model;
                ViewData["Coef"] = new SelectList(coef);
     
     
                return View();
     
     
            }
     
     //ma vue
     
       <div class="editor-field">
                    <%: Html.DropDownList("Coef") %>
                    <%: Html.ValidationMessageFor(model => model.Coef) %>
                </div>
    Je suis bloque et je ne sais quoi faire. Ainsi toute idée, conseil, ou assistance serait la bienvenue. A++

    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Hah _db.Coefs.ToList() renvoie une List<Coef>, pas une List<Int16>, donc je vois pas très bien comment le cast pourrait fonctionner... Tu cherches à faire quoi exactement ? Pourquoi as-tu besoin d'une List<Int16> ?

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Points : 92
    Points
    92
    Par défaut
    j'ai simplement besoin de transformer mon List<Coef> en List<Int16> afin de pouvoir le passe en parametres á mon selectList pour qu'il soit affiche par mon DropDownList
    a++

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par narutoe Voir le message
    j'ai simplement besoin de transformer mon List<Coef> en List<Int16>
    Bah oui mais comment ? Moi je la connais pas ta classe Coef, je peux donc pas deviner comment elle pourrait être transformée en Int16... Je suppose que Coef a une propriété de type Int16 ?

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Points : 92
    Points
    92
    Par défaut
    ma table coef est une table à 2 champs { id (Id int (11), coefvalue int(8)}.c'est pourquoi je voulais transformer en List<Int16> afin d'afficher dans un dropDwnList les différentes valeur de coefvalue
    a++

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    On aurait gagné du temps si tu avais dit ça dès le départ...

    C# ne peut pas deviner que ce que tu veux, c'est extraire le coefvalue de chaque élément de la liste et le mettre dans une nouvelle liste. Il faut le faire explicitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                var model = _db.Coefs.ToList();
                var coef = model.Select(c => c.Coefvalue).ToList();
                ViewData.Model = model;
                ViewData["Coef"] = new SelectList(coef);
     
                return View();

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Points : 92
    Points
    92
    Par défaut probleme de cast
    slt excuse moi pour mon absence voir j'avais également trouver un solution a ce problème en procédant de la sorte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
          List<int?> coefs = new List<int?>();
                var coef = from co in _db.Coefs
                           select co;
                foreach (var item in coef)
                {
                    coefs.Add(item.Coefvalue);
                }
                ViewData["Coef"] = new SelectList(coefs);
    merci encore pour l'assistance a++

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

Discussions similaires

  1. Probleme de cast de string en int
    Par Oberown dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/04/2006, 11h48
  2. Réponses: 12
    Dernier message: 25/07/2005, 14h49
  3. [VB.NET][dataset][datagrid] probleme de Cast
    Par graphicsxp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/05/2005, 14h18
  4. Probleme de cast de parametres
    Par John Fullspeed dans le forum Langage
    Réponses: 3
    Dernier message: 14/10/2004, 08h43
  5. probleme de cast
    Par gaut dans le forum C++
    Réponses: 9
    Dernier message: 06/08/2004, 18h43

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