Bonjour,

Je rencontre actuellement un problème assez énervant, malheureusement je n'arrive pas à le debug.

J'explique:
J'ai ajouté un nouveau champ dans ma page cshtml, qui doit faire le même affichage que les autres cas seulement la lorsque je tape dans mon champs le numéro de l'ID de des campagnes (il peut y avoir 1 ID pour plusieurs clients), il faut qu'il me l'affiche.

Actuellement, j'utilise une liste pour l'affichage générale des campagnes, qui prend "All", "accepted"..., je veux trier par ID maintenant, mais lorsque j'utilise une TextBoxFor, au moment de la compilation j'ai toujours une erreur dans mon foreach de mon cstml dans le ViewBag, j'arrive pas à comprendre j'ai eu beau fouillé mon code des centaines de fois j'ai l'impression que mon ViewBag n'arrive pas à stocker quand ce n'est pas une liste que j'envoie!

Voici les quelques gestions que j'ai fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
            if (model.CampaignID == 0)
            {
                this.ViewBag.AffiliateOffers = affiliateOfferApplicationsLogic.GetLastestAffiliateOffers(model.FilterID);
            }            
            else
            {
                this.ViewBag.AffiliateOffers = affiliateOfferApplicationsLogic.GetAffiliateOffersByCampaignID(model.CampaignID);
            }
            }
(ce cas me permet de gérer si l'ID == 0 il prend en compte que l'affichage de base qu'il fait avec sa liste, sinon il rentre dans un autre élément du controller)

Les controllers:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
        public List<affiliateOfferApplications> GetLastestAffiliateOffers(int statusID, int limit = LASTEST_OFFERS_LIMIT)
        {
            return (from u in context.affiliateOfferApplications where u.ApprovalStatus == statusID || statusID == -1 select u).OrderByDescending(u => u.ID).Take(limit).ToList();
        }
(Celui-ci fonctionne parfaitement, pas besoin de le toucher)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
        public campaigns GetAffiliateOffersByCampaignID(int campaignID)
        {
            return (from u in context.affiliateOfferApplications where u.CampaignID == campaignID select u).FirstOrDefault<affiliateOfferApplications>();
        }
(Celui avec qui je retrouve des soucis, pourtant je récupère bien le bon ID qui est rentré dans ma case)

Puis pour finir mon cshtml:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 @foreach (affiliateOfferApplications offer in this.ViewBag.AffiliateOffers)
                            {
                                <tr style="height: 65px">
                                    <td style="padding-right: 5px; text-align: left">@offer.ID</td>
                                    <td style="padding-right: 5px; text-align: left">@offer.publishers.Email (@offer.PublisherID)</td>
                                    <td style="padding-right: 5px; text-align: left">@offer.campaigns.PublicName (@offer.campaigns.ID)</td>
                                    <td style="padding-right: 5px; text-align: left">
                                        @using (Html.BeginForm())
                                        {
                                            @Html.HiddenFor(m => m.FilterID)
                                            @Html.DropDownList("offerStatus", ((CommonController)this.ViewContext.Controller).GetAffiliateOfferApplicationStatusesList(offer.ApprovalStatus), new { @class = "formShort" })
 
                                            <button type="submit" name="OfferID" value="@offer.ID" class="orangeButton">Update</button>
                                        }
J'ai coupé des parties mais je pense que c'est suffisant, Microsoft Visual Studio passe tous les breakpoint mais bloque seulement au cshtml dans la ligne du foreach... L'erreur que j'ai c'est "'System.Collections.IEnumerable" quelque chose du genre.

Si besoin d'information complémentaire je suis la! Je suis sur que c'est une simple erreur mais j'arrive pas à le trouver que c'est stressant

Je vous remercie d'avance!