c# - 在 Foreach 循环中以单次重复以及 MVC 5 的形式在表中显示数据
问题描述
我通过以下查询获取数据:
var rate_list = (from r in db.rate_list
where r.rate_list_type_id == get_type_id.rate_list_type_id
group r by r.item.item_category_id
into gr
select new RateList()
{
category_name = gr.FirstOrDefault().item.item_category.category_name,
item_name = gr.Select(r => new ItemName()
{
item_name = gr.FirstOrDefault().item.item_name
}).ToList()
}).ToList();
然后在视图中我正在做类似的事情:
@foreach (var item in Model.complete)
{
<tr style="border: 1px solid black;">
<td rowspan="@Model.complete.Count()"></td>
<td colspan="3">@item.category_name</td>
@foreach(var t in item.item_name)
{
<td>@t.item_name</td>
<td>@t.item_unit</td>
<td>@t.item_price</td>
}
</tr>
}
我不确定如何输出与图像中所示相同的结果。
任何帮助,将不胜感激。
编辑
我目前得到这个
编辑
这是我的 ViewModel
public class RateList
{
public string category_name { get; set; }
public IEnumerable<ItemName> item_name { get; set; }
}
public class ItemName
{
public string item_name { get; set; }
}
编辑
现在我有这个输出
编辑 2
最新输出
编辑 3
最新输出
解决方案
尝试这个
<table>
<thead>
<tr>
<th>SER</th>
<th colspan="2">Items</th>
<th>AU</th>
<th>1 X Block</th>
<th>Price</th>
</tr>
</thead>
<tbody>
@{
int i=0;
foreach (var item in Model.complete) {
<tr>
<td rowspan="@(item.item_name.Count+1)"></td>
<td colspan="2">@item.category_name</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
int alp=65;
foreach (var t in item.item_name) {
<tr>
<td>@((char)(alp++))</td>
<td>@t.item_name</td>
<td>@t.item_unit</td>
<td>@t.item_price</td>
</tr>
}
i++;
}
}
</tbody>
</table>
推荐阅读
- c++ - 在无限循环中使用`system()`的Windows线程在一小段时间后停止
- ios - 通过 Cocoapods 安装 FontAwesome
- apollo - 如何执行异步获取请求,然后重试上次失败的请求?
- python - Python将字符串写入纺织品中最多一行
- java - 错误:Java 链码正在进行中,并在 Fabric 1.1 中被禁用
- android - Room:使用 ID 检索用户信息
- css - DataTable中一个单元格的动态css - PrimeNG
- apache-kafka - 以 Kafka Avro 文件格式将新模式/主题添加到模式注册表
- java - 从命令行运行 Verticle 时找不到包
- java - 对 sendBroadcast(intent) 无操作