0

在 mvc4 中,我需要一个 foreach 来遍历表中的所有记录。我的 html 包括:

@model SJBusService.Models.trip

如果我尝试,我需要的记录来自总线表

foreach (var item in Model.bus)
{

}

我得到 SJBusService.Models.bus 不包含“getEnumerator”的公共定义

我该如何解决这个问题,我需要更改模型中的某些内容还是什么?

放置@foreach 也不能解决我的问题。

这是我的巴士模型

namespace SJBusService.Models
{
using System;
using System.Collections.Generic;

public partial class bus 
{
    public bus()
    {
        this.trips = new HashSet<trip>();
    }

    public int busId { get; set; }
    public int busNumber { get; set; }
    public string status { get; set; }
    public string comments { get; set; }

    public virtual ICollection<trip> trips { get; set; }
    }
}
4

2 回答 2

0

您的型号或用法不正确。

如果您的视图是一次旅行,您将只有一辆公共汽车:

Model.bus

=Model.bus.busNumber // etc.

另一方面,如果你的视图是一辆公共汽车,那么你将有一个旅行的集合:

Model.trips


foreach (var trip in model.trips)
{
    ...
}

所以你需要弄清楚一对多的走向。

如果这是某种旅行计划器,那么我猜测给定的旅行将有许多公共汽车(对于旅行的每一段),并且公共汽车将与许多旅行相关联。如果是这样,你实际上需要一个中间的多对多模型,比如

public class leg
{
    public int Id { get; set; }

    public int tripId { get; set; }
    public virtual trip trip { get; set; }

    public int busId { get; set; }
    public virtual bus bus { get; set; }
}
于 2013-10-28T00:22:45.860 回答
0

您在视图中的模型参考看起来像是基于您的总线类的错字。你的意思是@model SJBusService.Models.trip 是@model SJBusService.Models.trips 吗?此外,如果传递给视图的模型是 ICollection,那么 for each 只需要引用模型。

于 2013-10-28T00:17:49.720 回答