2011-12-20 60 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) 
} 

這表明一切進行編輯,但犯規保存更改。控制器收到poll.Answers = null

+0

你有沒有想出解決辦法?我有一個非常相似的情況。 – 2014-08-21 20:00:12

+0

@JoFlash,我解決了這個像這樣someyhing:http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/ – Wonder 2014-08-22 08:53:25

回答

0

這是因爲您繞過編輯器所做的高級ID /名稱生成。由於您在沒有任何上下文/範圍元數據的情況下分別渲染每個編輯器,因此編輯器渲染器只會呈現自身,就好像傳遞給它的模型是頂層模型一樣。

檢查這個問題的詳細信息:

using Html.EditorFor with an IEnumerable<T>

+0

之後嘗試,但它沒有幫幫我。 – Wonder 2011-12-20 17:15:42