0

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

    [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 是相同的,因为所有属性的集合在那里。

4

2 回答 2

1

好吧,虚惊一场。我想通了——我正在使用@Html.ActionLink 调用动作方法;我传递了整个模型,而不仅仅是 id。我不知道是什么愚蠢的原因让事情变得一团糟,但现在一切正常。

于 2012-10-19T21:28:15.560 回答
0

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

于 2012-10-19T21:08:46.867 回答