2011-12-20 10 views
0

は、私は2つのクラスがあります。EditorFor + foreachの+複合型

public class Poll 
{ 
    //... 
    public virtual ICollection<Answer> Answers { get; set; } 
} 

public class Answer 
{ 
    public int Id { get; set; } 
    [Required] 
    public string Content { get; set; } 
    private int _amount = 0; 
    public int Amount 
    { 
     get { return _amount; } 
     set { _amount = value; } 
    } 
} 

を私はエディタビューを作成する必要があります。 私はこれをしようとした場合:

@foreach (var answer in Model.Answers) 
{ 
    @Html.EditorFor(model => answer) 
} 

それは編集のためにすべてを示しているが、変更内容を保存しdoesntの。コントローラがpoll.Answers = nullを受信する

+0

あなたがこれを理解しましたか?私は非常に似たような状況があります。 –

+0

@JoFlashは、私はこのようなsomeyhingでそれを解決:http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/ – Wonder

答えて

0

これは、編集者が行う高度なID /名前生成をバイパスしているためです。あなたが任意のコンテキスト/スコープのメタデータなしに個別に各エディタをレンダリングしているので、それに渡されたモデルは、最上位モデルであるかのように、エディタのレンダラは、単に自分自身をレンダリングします。

チェック詳細は、この質問:

using Html.EditorFor with an IEnumerable<T>

+0

それ以下しようとしましたが、それはしませんでした助けて。 – Wonder