

ASP.NET WebForm(MVCではありません)のモデルバインディングについて、困っております。  
たとえば以下のようなクラスを、FormViewを使って、双方向モデルバインディングにより編集する場合

[code]

    public class Lover {
        public class name { get; set; }
        public int age { get; set; }
    }
    
    public class Employee {
        public string name { get; set; }
        public string address { get; set; }
        public List<Lover> lovers { get; set; }
    }
    
[/code]

のようなモデルの場合、

[code]

    名前 <asp:textbox id="name" runat="server" text="<%# BindItem.name %>" />
    住所 <asp:textbox id="address" runat="server" text="<%# BindItem.address %>" 
    恋人１氏名 <asp:textbox id="lovers[0].name" runat="server" text="<%# BindItem.lovers[0].name %>"
    恋人１年齢 <asp:textbox id="lovers[0].age" runat="server" text="<%# BindItem.lovers[1].age %>"
    
[/code]

などとするとエラーが出ます。  
id名、BindItemとも、配列要素は指定できないように思えました。  
ASP.NET MVCでは問題ありません。

Web Formではどうやってモデルバインディングを行ったらよいのでしょう。


CC BY-SA 3.0
2015-04-30T15:17:00.623
9711
2015-10-28T03:32:21.183
8912
question
asp.net
ASP.NET WebForm モデルバインディング：配列の場合


`IList`の要素に直接バインドすることは出来ません。モデル側にLover1、Lover2、Lover3…のようなプロパティを追加するか、`<asp:Repeater>`等を使用することを検討してください。

なお`ID`属性に関してはデータバインド式と合わせる必要はありませんので、`lovers_0__name`のように適当な名前を指定すればよいです。


CC BY-SA 3.0
2015-04-30T22:17:36.190
9715
2015-04-30T22:17:36.190
5750
9711
answer