У меня была похожая проблема, и я так и не нашел "простого" ответа. Мне было полезно знать, что все элементы в списке будут отображаться одинаково, поэтому я создал декоратор для ISomething, преобразовал список в IEnumerable, используя некоторый код из проекта Umbrella (http://umbrella.codeplex.com),, а затем извлек соответствующие шт. вроде как следующее:
public interface ISomethingDecorator
{
string Description { get; }
string[] Actions { get; }
}
public class BigSomethingDecorator : ISomethingDecorator { /* ... */ }
public class SmallSomethingDecorator : ISomethingDecorator { /* ... */ }
Затем, как я уже сказал, я использую проект Umbrella для преобразования из ISomething в ISomethingDecorator и возвращаю IEnumerable в View.
Не знаю, поможет ли это вам в том, что вы пытаетесь сделать - особенно опозданием на месяц - но я подумал, что дам вам знать, как я справился с этим. Если вы отображаете совершенно разные форматы, это, вероятно, не сработает, но, возможно, поможет вам начать с этого.