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 :

Problème utilisation foreach dans controleur


Sujet :

ASP.NET MVC

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut Problème utilisation foreach dans controleur
    Bonjour,

    Je voudrais faire une boucle avec foreach dans mon controler mais j'obtiens le message
    foreach statement cannot operate on variables of type 'object' because 'object' does not contain a public definition for 'GetEnumerator
    .

    Voici 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
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    using System;
    using System.Collections.ObjectModel;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Text;
    using MvcApplication4.Models;
     
     
     
    namespace MvcApplication4.Controllers
    {
     
            [HandleError]
        public class HomeController : Controller
        {
     
            TextesDBEntities _db;
     
            public HomeController()
            {
                _db = new TextesDBEntities();
            }
     
     
     
            public ActionResult Index()
            {
     
     
                HomeController MSG = new HomeController();               
     
                TempData["error"] = MSG;
     
     
                ViewData.Model = _db.TexteSet.ToList();
     
                foreach (var m in ViewData.Model)
                {
                  MvcApplication4.Helpers.TexteAModifier.setTexte(m.Chaine,m.Id); 
                }
     
                return View();
            }
     
     
     
        }
    }
    J'ai cherché à différents endroits mais rien ne marche.
    Est-ce que quelqu'un verrait comment corriger le problème?

    Merci.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Par défaut
    Je ne connais pas MVC, mais à vue de nez, je suppose que le type de ViewData.Model est "object" comme le dit ton erreur. Or un object n'est pas "itérable" car ne définit pas l'interface IEnumerable... En gros ton problème c'est que tu perds l'info du type.
    Il y a plusieurs solutions, of course.

    Pour que ton truc passe à la compil, il faudrait que tu fasse (par exemple, mais suis pas certain):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach (var m in ((IEnumerable< [mettre le bon type] >)ViewData.Model))
    {
     //blabla
    }
    ou alors tu changes un tout petit peu pour garder l'info du type::
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var la_liste = _db.TexteSet.ToList();
    ViewData.Model = la_liste;
     
    foreach (var m in la_liste)
    {
      MvcApplication4.Helpers.TexteAModifier.setTexte(m.Chaine,m.Id); 
    }
    Sinon, de manière générale, les messages du compilateur doivent te guider pour trouver l'erreur.

    Christophe

  3. #3
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Ton code est un peu étrange...

    Pourquoi ne boucle tu pas sur _db.TexteSet?

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

Discussions similaires

  1. [CR XI] Problème utilisation formule dans un graphique
    Par Cereal123 dans le forum Formules
    Réponses: 3
    Dernier message: 06/01/2015, 09h15
  2. Problème utilisation variable dans un shell.
    Par infoman33 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 15/03/2012, 10h24
  3. [2.x] [Problème] Utilisation entité dans DefaultController
    Par mrxpix dans le forum Symfony
    Réponses: 2
    Dernier message: 07/01/2012, 23h02
  4. Réponses: 6
    Dernier message: 23/04/2008, 17h17
  5. Réponses: 0
    Dernier message: 10/04/2008, 12h31

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