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

モデルまたは使用法が正しくありません。

ビューに旅行が与えられた場合、バスは 1 つになります。

Model.bus

=Model.bus.busNumber // etc.

一方、ビューにバスが指定されている場合は、旅行のコレクションがあります。

Model.trips


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

したがって、1 対多がどちらに進むかを整理する必要があります。

これが何らかの旅プランナーである場合、特定の旅行には(旅行の各行程ごとに)多くのバスがあり、バスは多くの旅行に関連付けられると思います。もしそうなら、実際には中間に多対多モデルが必要です。

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

ビューのモデル ref は、バス クラスに基づくタイプミスのように見えます。@model SJBusService.Models.trip が @model SJBusService.Models.trips になるということですか? また、ビューに渡されたモデルが ICollection の場合、for each は Model を参照するだけで済みます。

于 2013-10-28T00:17:49.720 に答える