对于不是模型的表中的每条记录

本文关键字:记录 模型 于不 | 更新日期: 2023-09-27 18:37:14

在 mvc4 中,我需要一个 foreach 来循环访问表中的所有记录。我的 html 包括:

@model SJBusService.Models.trip

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

foreach (var item in Model.bus)
{
}

i get 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; }
    }
}

对于不是模型的表中的每条记录

视图中的

模型引用看起来像基于总线类的拼写错误。 你的意思是@model SJBusService.Models.trip@model SJBusService.Models.trips吗? 此外,如果传递给视图的模型是 ICollection,则每个模型只需要引用模型。

您的型号或用法不正确。

如果您的视图被给予旅行,您将有一辆公共汽车:

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; }
}