我正在使用以下代码联接2个表,并将它们的结果返回到View
。
var Results = (from post in DbContext.posting_file
join reader in DbContext.user_master_postings on post.id equals reader.posting_id
join file in DbContext.postings_title on post.id equals file.id
orderby reader.date_created descending
select new { file.title, reader.date_created, reader.department, reader.user_name }).Take(5).ToArray();
在视图中运行foreach循环时。
@foreach (var item in ViewBag.Results){
@item
}
我得到以下结果。
{ title = Title 1, date_created = 21/08/2018, department = Audit, user_name = Chetty } { title = Title 2, date_created = 21/08/2018, department = Audit, user_name = Pal } { title = Title 3, date_created = 21/08/2018, department = Audit, user_name = Chetty } { title = Title 4, date_created = 21/08/2018, department = Corporate, user_name = Kau }
我想要的结果是数组格式的,这样我就可以遍历结果并将其填充到表中。我该怎么办?
答案 0 :(得分:1)
我并不完全是您要问的问题,但是,如果您想填充数组的内容(您在LINQ查询中使用.ToArray()
指定的内容),则可以在循环内使用以下点表示法
p.s。您可能想在此表中包含一些标题,但是您明白了。 p.p.s您是否考虑过将此集合合并到视图模型中而不是在视图包中?
@if (ViewBag.Results != null && ViewBag.Results.Count > 0) {
<table>
@foreach(var item in ViewBag.Results) {
<tr>
<td>@item.title</td>
<td>@item.date_created</td>
<td>@item.department</td>
<td>@item.user_name</td>
</tr>
}
</table>
}