C# 关于一个视图中的多个模型,请再说一遍

C# 关于一个视图中的多个模型,请再说一遍,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我正在尝试创建一个视图,在其中可以编辑来自两个不同模型的数据。我阅读了本手册:以及其他一些相关主题,在我的视图中成功地获得了两个模型的数据,但我不明白为什么我不能在我的视图中编辑它 因此,在我看来,我有如下smth: @model Tuple<GroupProjectsModel,InfrastructureModel> @Html.EditorFor(m => m.Item1.Data) @Html.EditorFor(m => m.Item2.Data) 然后,

我正在尝试创建一个视图,在其中可以编辑来自两个不同模型的数据。我阅读了本手册:以及其他一些相关主题,在我的视图中成功地获得了两个模型的数据,但我不明白为什么我不能在我的视图中编辑它

因此,在我看来,我有如下smth:

@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);
    }

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

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

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

当您的模型最初是专门为某个视图设计的时,您怎么可能需要多个模型用于视图?如果不是,那么应该是这样的?您应该创建一个模型,其中包含两个模型。这只会给你自己制造麻烦你为什么不使用局部视图?局部视图在这里能帮我什么忙?我可以创建局部视图,但无论如何,如何在两个模型中保存数据?如果要同时保存两个模型的数据,解决方案是将两个模型合并为一个。如果有帮助的话,我可以给你举个例子。