我有一个基本类型的 IEnumerable 作为我的模型。
我需要根据具体类型在列表中显示不同的 HTML。
因此,结果列表在 HTML 中可能与此类似:
<ul>
<li class="points">Points - Item 1 - 10 points <a href="#">Remove</a></li>
<li class="media">Media - Item 2 - your_uploaded_image.jpg <a href="#">Remove</a></li>
<li class="content">Content - Item 3 <a href="#">Remove</a></li>
</ul>
稍后我可能会为此添加另一种类型,因此以下解决方案并不是我真正想要的。
@foreach(var item in Model)
{
if(item is PointImpl)
{
var pointItem = item as PointImpl;
<li class="points">Points - @pointItem.Name - @pointItem.Points points <a href="#">Remove</a></li>
}
else if(item is MediaImpl)
{
var mediaItem = item as MediaImpl;
<li class="media">Media - @mediaItem.Name - @mediaItem.FileName <a href="#">Remove</a></li>
}
/*
More implementations
*/
}
我已经查看了模型元数据模板提示,但这并没有真正帮助,因为我的模型是 IEnumerable..
我正在考虑一个自定义 Html Helper 查看具体类型的属性,但认为可能有一种内置的方式来执行此操作?