Перечисляемые модели MVC2? - PullRequest
3 голосов
/ 28 апреля 2010

Хорошо, я действительно новичок в привязке модели в MVC, и мой вопрос такой:

Если у меня есть модель со свойством IEnumerable, как я могу использовать HtmlHelper с этим, чтобы я мог представить действие, которое принимает этот тип модели.

Пример модели:

public class FooModel {
    public IEnumerable<SubFoo> SubFoos { get; set; }
}
public class SubFoo {
    public string Omg { get; set; }
    public string Wee { get; set; }
}

Просмотр фрагмента:

<%foreach(var subFoo in Model.SubFoo) { %>
     <label><%:subfoo.Omg %></label>
     <%=Html.TextBox("OH_NO_I'M_LOST") %>
<%} %>

1 Ответ

2 голосов
/ 28 апреля 2010

Вместо IEnumerable<SubFoo> вы можете использовать массив:

public class FooModel {
    public SubFoo[] SubFoos { get; set; }
}

А потом по вашему мнению:

<% for (var i = 0; i < Model.SubFoo.Length; i++) { %>
     <label><%:subfoo.Omg %></label>
     <%=Html.TextBoxFor(x => x.SubFoo[i].Omg) %>
<%} %>

Другая возможность - сохранить IEnumerable<SubFoo>, но в этом случае вы не можете использовать строго типизированный помощник:

<% for (var i = 0; i < Model.SubFoo.Count(); i++) { %>
     <label><%:subfoo.Omg %></label>
     <%=Html.TextBox("SubFoo[" + i + "].Omg") %>
<%} %>
...