2010-10-29 16 views
1

Je suis le didacticiel sportsStore du livre Cadre Apress Pro Mvc 2.Erreur: foreach instruction ne peut pas fonctionner sur les variables de type IENumerable

Cela fait un moment que j'ai touché .net, et je suis complètement nouveau à Mvc et je suis tombé à la première pierre d'achoppement!

J'ai l'erreur suivante:

foreach statement cannot operate on variables of type 'IENumerable' because 'IENumerable' does not contain a public definition for 'GetEnumerator'

Voici le code pour la vue:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IENumerable<SportsStore.Domain1.Entities.Product>>" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
    Products 
</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 

    <h2>Products</h2> 

    <% foreach (var product in Model) 
     { %> 
    <div class="item"> 
     <h3><%: product.Name%></h3> 
     <%: product.Description%> 
     <h4><%: product.Price.ToString("c")%></h4> 
    </div> 
    <% } %> 

</asp:Content> 

Voici l'extrait du contrôleur:

ViewResult Liste (public) { return View (productsRepository.Products.ToList()); }

Et voici la classe de produits:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace SportsStore.Domain1.Entities 
{ 
    public class Product 
    { 
     public int ProductID { get; set; } 
     public string Name { get; set; } 
     public string Description { get; set; } 
     public decimal Price { get; set; } 
     public string Category { get; set; } 
    } 
} 

Je suis sûr que cela a probablement une solution simple mais j'ai suivi le livre exactement légèrement énervée que je l'ai fait une erreur si tôt sur!

Si quelqu'un pouvait m'aider, je serais très reconnaissant.

+0

+1 pour le livre! :-) – DaveDev

Répondre

4

Remplacez IENumerable par IEnumerable.

+0

Parfait. Je ne peux pas croire à quel point c'est stupide !! Merci beaucoup :) Je vais marquer cela comme correct une fois que la limite de temps est écoulée. – 109221793

2

Essayez IEnumerable et non IENumerable.

1

Je pense que vous avez une faute de frappe. Utilisez IEnumerable.