-3

I am recreating the website NerdDinner using MVC, ASP.NET. I have created a database containing the dinners, their dates, and other related information. On my index View, I am attempting to use a foreach loop to list all the dinners to the screen. I keep getting the error:

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

    <ul>
    @foreach (var dinner in Model) 
    {

        <li>                 
            @dinner.Title           
            on 
            @dinner.EventDate.ToShortDateString()
            at
            @dinner.EventDate.ToShortTimeString()
        </li>
    }                    
    </ul>

I am pretty new to this and am not sure how to correct this issue, or really even WHERE the issue is located.

Here is my GitHub repo for the project. Sorry if the question is ambiguous, I am just a little lost and not really sure how to proceed from here.

4

3 回答 3

2

你的模型是类型@model NerdDinner.Models.Dinner

所以基本上你的模型不是一个列表。将您的模型更改为 @model IEnumerable<NerdDinner.Models.Dinner>@model List<NerdDinner.Models.Dinner>应该解决您的问题

编辑:将 Index.cshtml 更改为

@model List<NerdDinner.Models.Dinner>

@{
ViewBag.Title = "Index";
}

<h2>Upcoming Dinners</h2>

<ul>

@foreach(var dinner in Model)
{
    <li>
        @dinner.Title
        on
        @dinner.EventDate.ToShortDateString()
        at
        @dinner.EventDate.ToShortDateString()
    </li>
}
</ul>
于 2017-09-08T07:38:35.840 回答
0
@foreach(var dinner in Model.dinners)
{
    <li>
        @dinner.Title
        on
        @dinner.EventDate.ToShortDateString()
        at
        @dinner.EventDate.ToShortDateString()
    </li>
}

试试这个,你必须定义你想要循环的模型

于 2017-09-08T07:38:21.150 回答
0

在您看来,模型需要IEnumerable类似于:

@model IEnumerable<NerdDinner.Models.Dinners>

然后你可以使用foreach如下:

@foreach (var item in Model) {

//你的代码在这里..

}

希望这可以帮助。

于 2017-09-08T07:49:02.573 回答