0

私のプログラムには次のビューがあります。複数の FloorNum がありますが、表示されると最初の FloorNum のみが表示されます。LocID=xx であるすべての FloorNum の値を表示するようにループするにはどうすればよいですか

<table>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.LocID)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.FloorNum)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.RoomNum)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.RoomStatus)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model ) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.LocID)

        </td>
        <td>
            @Html.DisplayFor(modelItem => item.FloorNum)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.RoomNum)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.RoomStatus)
        </td>

        <td>

モデルのクラスは

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace HC.Data
{
    public class Rooms
    {
        [Key]
        public int ID { get; set; }
        public int LocID { get; set; }
        public int FloorNum { get; set; }
        public int RoomNum { get; set; }
        public int RoomStatus { get; set; }
    }
}

作業はすべて RAD を使用して行われているため、LocID をリストに変更することはできません。現時点では、変更すると大幅に遅延します。ディスプレイ上でループを配置して機能させることができるかどうか疑問に思っています。

4

2 に答える 2

0

ビューに 'Rooms' の単一の値を渡しており、foreach ループが 1 つの部屋を表示しているように感じます。リストをビューに渡すと、 foreach ループはほぼ確実に、記述したとおりに機能します。ただし、DisplayFor は、Rooms クラスの単一のインスタンスではなく、部屋のリストを指すようになるため、そうではない可能性があります。

于 2012-12-17T17:32:38.160 に答える
0

List<Room>モデルが次のとおりであると仮定します。

@{
    List<int> floors = Model.Select(x => x.FloorNum).Distinct();
}
@foreach (var floor in floors)
{
    foreach(var room in Model.Where(x => x.FloorNum == floor))
    {
        ... your display helpers here...
    }
}

これは疑似コードであるため、いくつかの調整が必要になる場合があります。

于 2012-12-17T17:43:43.523 に答える