У меня есть 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, который просматривает атрибут конкретного типано думаете, что может быть встроенный способ сделать это?