代码之家  ›  专栏  ›  技术社区  ›  Ben Lesh

MVC2模型绑定可枚举?

  •  3
  • Ben Lesh  · 技术社区  · 15 年前

    好吧,我对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 回复  |  直到 15 年前
        1
  •  2
  •   Darin Dimitrov    15 年前

    而不是 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子对象 但在这种情况下,不能使用强类型帮助器:

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