我将列表列表返回到MVC视图,显示为一组表。我使用嵌套for循环来尝试返回每个列表中的值。
这些表返回到视图中,每个表中都有预期的行数,但它们不是每行中的值,而是返回参数的名称,而不是每个参数的实际值。
我视图中的代码目前是:
@if (Model.Report != null)
{
for(var row = 0; row < Model.Report.Count(); row++)
{
<table>
<tr>
<td><h4>@Html.DisplayNameFor(m=>m.Report[row].ReportData[row].ReportingGroup)</h4></td>
</tr>
<tr class="table-header">
<td style="text-align: center">Name</td>
<td style="text-align: center">Area</td>
<td style="text-align: center">Message</td>
</tr>
@for (var listing = 0; listing < Model.Report[row].ReportData.Count(); listing++)
{
<tr>
<td style="text-align: center">@Html.LabelFor(a=>a.Report[row].ReportData[listing].Name)</td>
<td style="text-align: center">@Html.LabelFor(a => a.Report[row].ReportData[listing].Area)</td>
<td style="text-align: center">@Html.LabelFor(a => a.Report[row].ReportData[listing].Message)</td>
</tr>
}
</table>
}
}
我返回参数名称(&#34; Name&#34;,&#34; Area&#34;和&# 34;消息&#34;)给每个人。我想知道我在哪里出错了。
答案 0 :(得分:1)
LabelFor
显示您传递的属性的标签。没有其他属性,那只是属性名称。
您只想打印值本身:
@Model.Report[row].ReportData[listing].Message
您应该将for
循环替换为foreach
,这样您就不需要完成所有操作了。
答案 1 :(得分:1)
将您的LabelFor
更改为for循环中的DisplayFor
或TextBoxFor
。