在一个视图中再次关于多个模型

时间:2014-04-07 14:29:45

标签: c# asp.net-mvc asp.net-mvc-4

我正在尝试创建一个视图,我可以在其中编辑来自2个不同模型的数据。我阅读了本手册:Multiple models in a view以及其他一些关于SO的主题,我在视图中成功获取了2个模型的数据,但我无法理解为什么我无法在视图中编辑它。

所以,在我看来,我有点像:

@model Tuple<GroupProjectsModel,InfrastructureModel>

@Html.EditorFor(m => m.Item1.Data)

@Html.EditorFor(m => m.Item2.Data)

然后,当我试图保存数据时,发生了一些错误。我在控制器中有以下代码:

[HttpPost]
    [InitializeEditPageAttribute]
    public ActionResult Edit(GroupProjectsModel get, InfrastructureModel getInf)
    {
        if (ModelState.IsValid)
        {

             ....

            return ReturnView(get.Id, NameModule);
        }
        var tuple = new Tuple<GroupProjectsModel, InfrastructureModel>(get, getInf);
        return View(tuple);
    }

在这种情况下,变量ModelState.IsValid无论如何都等于false。但我正在尝试另一种情况:

        [HttpPost]
    [InitializeEditPageAttribute]
    public ActionResult Edit(Tuple<GroupProjectsModel, InfrastructureModel> tupleFromModel)
    {
        if (ModelState.IsValid)
        {
           ...

            return ReturnView(tupleFromModel.Item1.Id, NameModule);
        }
        var tuple = new Tuple<GroupProjectsModel, InfrastructureModel>(tupleFromModel.Item1, tupleFromModel.Item2);
        return View(tuple);
    }

也犯了错误。我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

刚刚创建了另一个包含两个类的类。

public class EditViewModel
{
   public GroupProjectsModel groupProjectsModel {get; set;}
   public InfrastructureModel infrastructureModel {get; set;}
}