MVC嵌套模型集合为空(非null)

时间:2012-10-19 20:56:56

标签: asp.net-mvc model-view-controller model-binding

我有一个具有属性的模型是一个集合。我可以从编辑操作成功绑定,例如:

    [HttpGet]
    public ActionResult Edit(string id)
    {
        // code here
        return this.View(complexModel);            
    }

    [HttpPost]
    public ActionResult Edit(ComplexModel complexModel)
    {
        // code here
        return RedirectToAction("AnotherAction")            
    }

在post方法中,我可以成功接收所有对象属性,包括集合属性。但是我有另一个可以调用Edit操作的视图。当发生这种情况时,我可以看到渲染的html是相同的(即嵌套的属性信息在那里)。当我在帖子编辑中保存更改时,我收到所有正确的属性,但有一个例外 - 集合属性没有项目。

我在哪里可以搜索问题?

更新: 我正在迭代整个集合并使用EditorFor显示所有项目;然而,当来自不同的视图(不同的视图在另一个控制器中并且编辑链接放置在显示模板中 - 如果这有任何区别)与相同的精确模型时,我可以看到html是相同的,因为所有属性那里有收藏品。

2 个答案:

答案 0 :(得分:1)

好的,误报。我想通了 - 我正在使用@ Html.ActionLink调用action方法;我正在传递整个模型,而不仅仅是id。我不知道是什么愚蠢的事情搞砸了,但现在好了。

答案 1 :(得分:0)

您的编辑视图是什么样的?您需要将集合中的所有项目作为表单元素进行迭代。