2010-04-28 2 views
3

Хорошо, так что я достаточно новый для моделирования связывания в MVC, на самом деле, и мой вопрос заключается в следующем:Переменные переплетения MVC2?

Если у меня есть модель с 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") %> 
<%} %> 

ответ

2

Вместо 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") %> 
<%} %>