3

さて、私は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") %>
<%} %>
4

1 に答える 1

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) %>
<%} %>

もう1つの可能性は保持することIEnumerable<SubFoo>ですが、この場合、強く型付けされたヘルパーを使用することはできません。

<% for (var i = 0; i < Model.SubFoo.Count(); i++) { %>
     <label><%:subfoo.Omg %></label>
     <%=Html.TextBox("SubFoo[" + i + "].Omg") %>
<%} %>
于 2010-04-28T14:47:19.917 に答える