ASP.NET MVC 2: как вызвать DisplayFor для каждого элемента в коллекции? - PullRequest
4 голосов
/ 13 апреля 2010

У меня есть свойство в моей модели, которое является типом коллекции (Список). Я хотел бы позвонить для каждого элемента в этой коллекции Html.DisplayFor или Html.EditorFor. Как я могу это сделать?

РЕДАКТИРОВАТЬ Это не строгое представление. Это шаблонное представление. Есть только ViewData.ModelMetadata.

Ответы [ 3 ]

8 голосов
/ 01 апреля 2011

Можете ли вы попробовать

<% foreach (var item in Model.MyCollection) { %>
    <%= html.EditorFor(m=>item) %>
<% } %>
2 голосов
/ 13 апреля 2010

Как-то так, на ваш взгляд?

<% foreach (var item in Model.MyCollection) { %>
    <%= html.EditorFor... %>
    ...
<% } %>

См. Также с использованием Html.EditorFor с IEnumerable

0 голосов
/ 24 мая 2010

Самый простой способ сделать это - просто добавить свойство SelectedItem к вашей модели:

public class YourModel
{

public IEnumberable<Item> YourCollection
{
get;
}


public Item SelctedItem
{
get;
set;
}


}

Затем просто назначьте каждый элемент в списке свойству selctedItem:

<% foreach (var item in Model.YourCollection) { %>   

Model.SelctedItem = item;

<%= html.EditorFor(SelctedItem) %>   
    ...   
<% } %> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...