我正在使用一个简单的视图,它是两个表的左外连接,以获取每个 FEE 所属的 CATEGORY 名称并将它们分组以进行显示。当我简单地运行视图并遍历项目时,它会重复项目,就像它没有使用相同的视图一样。
@foreach (var category in Model.FeeScheduleRates())
{
<tr><td colspan="2">@category.Category</td></tr>
foreach (var item in Model.FeeScheduleRates())
{
<tr>
<td>@item.Fee_Title - @item.Description</td>
<td>@item.Amount</td>
</tr>
}
}
所以我将我的方法更改为第二组项目的while循环,但这会导致内存不足错误并且似乎不起作用。
@foreach (var category in Model.FeeScheduleRates())
{
<tr><td colspan="2">@category.Category</td></tr>
var cid = category.Cat_ID;
while (category.Cat_ID == cid)
{
<tr>
<td>@category.Fee_Title - @category.Description</td>
<td>@category.Amount</td>
</tr>
}
}
所以问题是,如何遍历视图并将项目分组到它们的类别中,只显示一次类别>
我已经回到绘图板并使用它:
@foreach (var category in Model.FeeScheduleRates().Distinct())
{
<tr><td colspan="2">@category.Category</td></tr>
foreach (var item in Model.FeeScheduleRates().Where(i=>i.Cat_ID == category.Cat_ID))
{
<tr>
<td>@item.Fee_Title - @item.Description</td>
<td>@item.Amount</td>
</tr>
}
}
经历了某种形式的成功,因为类别显示为行,然后是下面的项目。有趣的是,它仍然只是重复相同项目的次数与匹配该类别的记录一样多。我仍然很好奇为什么它没有正确地遍历项目并给我每个 Fee_Title 和 Description。例如:
`免费服务
银行到银行 (B2B) 转账 - 资金到 FCU 免费
银行到银行 (B2B) 转账 - 资金到 FCU 免费
银行到银行 (B2B) 转账 - 资金到 FCU 免费
银行到银行 (B2B)转账 - 资金到 FCU 免费
银行到银行 (B2B) 转账 - 资金到 FCU 免费
银行到银行 (B2B) 转账 - 资金到 FCU 免费银行到银行 (B2B) 转账 - 资金到
FCU免费
银行 -
到银行 (B2B) 转账 - 资金到 FCU 免费
银行到银行 (B2B) 转账 - 资金到 FCU 免费
银行到银行 (B2B) 转账 - 资金到 FCU 免费
银行到银行 (B2B) 转账 -资金到 FCU 免费
银行到银行 (B2B) 转账 - 资金到 FCU 免费
银行到银行 (B2B) 转账 - 资金到 FCU 免费
储蓄和货币市场账户
储蓄
自动转账- 2 美元 储蓄
自动转账 - 2 美元 储蓄自动转账 - 2 美元
储蓄自动转账 - 2 美元 储蓄
自动转账 - 2 美元 储蓄自动转账 - 2 美元
储蓄自动转账 - 2
美元
所以数据库中有 12 个项目在免费类别下,7 个项目在储蓄和货币市场账户下。它只是重复每个类别的第一个类别,次数与类别中的记录一样多。我明白了!!!