.NET MVC视图返回对象名称而不是特定对象

时间:2015-11-22 00:03:35

标签: c# .net asp.net-mvc razor

我将列表列表返回到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;)给每个人。我想知道我在哪里出错了。

2 个答案:

答案 0 :(得分:1)

LabelFor显示您传递的属性的标签。没有其他属性,那只是属性名称。

您只想打印值本身:

@Model.Report[row].ReportData[listing].Message

您应该将for循环替换为foreach,这样您就不需要完成所有操作了。

答案 1 :(得分:1)

将您的LabelFor更改为for循环中的DisplayForTextBoxFor