EditorFor + foreach +复杂类型

时间:2011-12-20 15:04:43

标签: asp.net asp.net-mvc-3 entity-framework

我有2个班级:

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

1 个答案:

答案 0 :(得分:0)

这是因为您绕过了编辑所做的高级ID /名称生成。由于您在没有任何上下文/范围元数据的情况下单独渲染每个编辑器,因此编辑器渲染器只是渲染自身,就好像传递给它的模型是顶级模型一样。

查看此问题以获取更多信息:

using Html.EditorFor with an IEnumerable<T>