仅显示模型

时间:2015-10-20 20:58:20

标签: asp.net-mvc list model-view-controller view lambda

我尝试仅显示适用于模型中某个项目的值。 我有一个列表,其中包含我想要显示的模型中的属性的名称。这是我拥有的代码(并且不起作用)

foreach (var item in ViewBag.attributes)
        {
            var attribute = item.Attributename;
            var value = Model.Equals(attribute);
            <dt>                    
                @Html.DisplayNameFor(model => value)
            </dt>
            <dd>
                @Html.DisplayFor(model => value)
            </dd>
        }

这会起作用:

            <dt>                    
                @Html.DisplayNameFor(model => model.Name)
            </dt>
            <dd>
                @Html.DisplayFor(model => model.Name)
            </dd>

但是我不希望名字被硬编码,这就是为什么我把它放在我的名单中 &#34;名称&#34;其他一些值保存在属性列表中 我真正想要发生的是这样的事情:

@Html.DisplayFor(model => model.(ListItem.attributename))

所以我的问题是:是否可以在&#34;模型之后放置变量。&#34;?
我知道这可能有点令人困惑,但我希望我提供了足够的信息,如果没有,请随时要求更多信息。

1 个答案:

答案 0 :(得分:0)

如果没有确定订单,并且没有编写方法来按名称获取属性值。你可以像这样写你的观点..

@{
    var attrList = ViewBag.attributes as List<Attribute>;
}
<dt>                    
    @Html.DisplayNameFor(model => model.Name)
</dt>
@if (attrList.Any(a => a.Attributename == "Name"))
{
    <dd>
        @Html.DisplayFor(model => model.Name)
    </dd>
}
etc..