C# 关于一个视图中的多个模型,请再说一遍
我正在尝试创建一个视图,在其中可以编辑来自两个不同模型的数据。我阅读了本手册:以及其他一些相关主题,在我的视图中成功地获得了两个模型的数据,但我不明白为什么我不能在我的视图中编辑它 因此,在我看来,我有如下smth: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) 然后,
@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;}
}
当您的模型最初是专门为某个视图设计的时,您怎么可能需要多个模型用于视图?如果不是,那么应该是这样的?您应该创建一个模型,其中包含两个模型。这只会给你自己制造麻烦你为什么不使用局部视图?局部视图在这里能帮我什么忙?我可以创建局部视图,但无论如何,如何在两个模型中保存数据?如果要同时保存两个模型的数据,解决方案是将两个模型合并为一个。如果有帮助的话,我可以给你举个例子。