Использование DisplayTemplate (с DisplayFor) для каждого элемента в коллекции

Я создал DisplayTemplate для класса Comment , и поместил его в Comment / DisplayTemplates / Comment.cshtml .

Comment.cshtml набран правильно:

@model Comment

Затем у меня есть частичное представление, которое принимает IEnumerable для модели. Здесь я просматриваю коллекцию и хочу использовать DisplayTemplate для класса Comment . Представление в его целостности:

@model IEnumerable<Comment>

@foreach (var comment in Model.Where(c => c.Parent == null)) { 
    @Html.DisplayFor(model => comment)
}

Однако я получаю сообщение об ошибке в строке Html.DisplayFor :

Элемент модели, переданный в словарь, имеет тип 'System.Int32', но это Для словаря требуется элемент модели типа System.String.

Как я могу вызвать DisplayTemplate для каждого элемента в цикле foreach ?

22
задан Sergi Papaseit 13 April 2011 в 15:43
поделиться