我尝试仅显示适用于模型中某个项目的值。 我有一个列表,其中包含我想要显示的模型中的属性的名称。这是我拥有的代码(并且不起作用)
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;?
我知道这可能有点令人困惑,但我希望我提供了足够的信息,如果没有,请随时要求更多信息。
答案 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..