很难解释我的问题,但我会尽量说得更明确。也对不起我的英语...
实际上,我认为我有这个数组。
检索它的代码如下:
@foreach (var item in Model)
{
TimeSpan result = DateTime.Now - item.OrderDate;
if (result.Days < 31)
{
<tr border="1" bgcolor="@Odd">
<td> @Html.DisplayFor(modelItem => item.Username) </td>
<td> @Html.DisplayFor(modelItem => item.OrderId) </td>
<td>
<ul style="list-style-type:none; padding:0; margin:0">
@if (item.OrderDetails != null)
{
foreach (var o in item.OrderDetails)
{
if (o.Pack == null)
{
<li> @Html.DisplayFor(modelItem => o.Product.Name) </li>
}
else
{
<li> <text>Pack</text> @Html.DisplayFor(modelItem => o.Pack.Name) </li>
}
}
}
</ul>
</td>
......... other td.............
</tr>
} // 1116 = 36 months
else if (result.Days > 31 && result.Days <= 1116)
{
if (item.OrderDetails != null)
{
foreach (var a in item.OrderDetails)
{
if (a.Pack != null)
{
<tr border="1" bgcolor="@Odd">
<td> @Html.DisplayFor(modelItem => item.Username) </td>
<td> @Html.DisplayFor(modelItem => item.OrderId) </td>
<td>
<ul style="list-style-type:none; padding:0; margin:0">
@if (item.OrderDetails != null)
{
foreach (var o in item.OrderDetails)
{
if (o.Pack != null)
{
<li><text>Pack </text> @Html.DisplayFor(modelItem => o.Pack.Name)</li>
}
}
}
</ul>
</td>
......... other td.............
</table>
所以,如你所知,我有两种产品:产品和包装。在我的第一个 IF 条件(result.days < 31)中,我检索 Pack 和 Product,例如我的订单号 59,因为订单日期少于 31 天。那就是找工作。
现在,对于我的第二个 IF 条件 >31 和 <1116,我希望它只检索我的 PACK。它也很好用,我只有两包,我的产品没有显示,太好了(不要注意单价和数量列,我只是忘记在截屏时取消注释某些行为什么有一个价格和一个数量,它应该什么都没有。)。但正如你所看到的,当我处于第二种情况时,它会为一个订单检索两次该行,因为我在另一个中有两个 foreach 一个。我怎么能通过它,像我的第一个条件一样只有一个线?
我不知道我是否清楚......您可能想知道我在这里使用两个模型。一个 OrderModel 和一个 OrderDetailModel。第一个包含 OrderId, OrderDate, Username, ClientId 第二个包含 OrderDetailId, OrderId, ProductId, UnitPrice(for product), PackId, UnitPricePack。
非常感谢您的回答、提示、链接等...