Самый простой способ - выполнить # 1, указав имя шаблона при отображении модели в качестве второго параметра:
<%= Html.DisplayFor(m => m.GenericList, "DisplayList")%>
Обработка дженериков не очень хороша в MVC2.Исходный код говорит:
// TODO: Make better string names for generic types
Итак, при рендеринге списка он ищет шаблон с именем List`1 по умолчанию для его рендеринга, если вы не укажете другое имя.
По второму пункту вы бы сделали то же самое, что и # 1.Укажите имя шаблона или используйте UIHint при отображении элемента.