c# - 如何foreach迭代包含集合列表的剃须刀项目?
问题描述
如何在剃刀中迭代这个结果列表项?
我的控制器:
ViewBag.DataGrid = lst. GroupBy(x=> new { x.PosisiJabatanId, x.AplikasiId}, (key, group) => new
{
Key1 = key.PosisiJabatanId,
Key2 = key.AplikasiId,
Result = group.ToList()
});
我的剃刀视图:
@foreach (var item in @ViewBag.DataGrid)
{
@:<tr>
<td>@i</td>
<td>@item.Result.Organisasi</td>
<td>@item.Result.NamaAplikasi</td>
<td>@item.Result.Unit</td>
<td>@item.Result.PosisiJabatanId</td>
i = i + 1;
@:</tr>
}
但“对象”不包含“结果”的定义
解决方案
您正面临这个问题,因为您正试图在匿名对象上使用每个循环。所以首先你需要像下面这样从中获得价值。然后你需要为它上面的每个循环进行 eterate。
@foreach (var item in @ViewBag.DataGrid)
{
<tr>
@{
var val = item.GetType()
.GetProperty("Result")
.GetValue(item);
foreach (var result in val)
{
<td>@result.Organisasi</td>
<td>@result.NamaAplikasi</td>
<td>@result.Unit</td>
<td>@result.PosisiJabatanId</td>
}
}
</tr>
}
推荐阅读
- node.js - AWS Lambda 执行 15-20 秒以将遥测事件发送到 Azure Application Insights
- git - 沉默 git rebase --interactive 的“如何进行”消息
- perl - 迭代时无意中将键添加到哈希
- pandas - 如何根据熊猫中的条件获得加入?
- ios - 如何在 RXSwift 中重置 Observable 区间运算符?
- sequelize.js - 我得到的这个“defineCall 不是函数”错误是什么?
- product - 我设置了开发人员模式,当我创建产品时,它在前端商店软件中显示错误。
- excel - VBA Excel - 根据用户输入使用 xlFilterAllDatesInPeriod"Month"
- amazon-web-services - 什么是 IAM 用户属性?
- java - 有什么方法可以追踪或监听用户点击浏览器中的任何链接,或者任何聊天信使应用程序甚至短信?