开发者

MVC2 Model Binding Enumerables?

Okay, so I'm fairly new to model bindin开发者_如何学Gog in MVC, really, and my question is this:

If I have a model with an IEnumerable property, how do I use the HtmlHelper with that so I can submit to an Action that takes that model type.

Model Example:

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

View Snip:

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


Instead of IEnumerable<SubFoo> you could use an array:

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

And then in your view:

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

Another possibility is to keep the IEnumerable<SubFoo> but in this case you cannot use the strongly typed helper:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜