Asp.net mvc asp.net mvc和多个模型和ModelBinder

Asp.net mvc asp.net mvc和多个模型和ModelBinder,asp.net-mvc,nested,nested-forms,Asp.net Mvc,Nested,Nested Forms,我想让这一切尽可能简单 假设我有一个项目模型和一个任务模型 我想创建一个项目,在一个表单中为该项目分配3个任务 最好的方法是什么 该方法是否只是接收一个项目,或者我需要在那里拥有什么。。仅保存项目(在存储库中)也会保存相关任务吗?。。。 在视图中。。。我需要一个viewModel吗。。我很困惑。请帮忙 public ActionResult Create(Project p){ } 将任务模型集合添加到项目模型中,并使用foreach循环显示任务,或重复知道如何显示单个任务的部分视图。将任务

我想让这一切尽可能简单

假设我有一个项目模型和一个任务模型

我想创建一个项目,在一个表单中为该项目分配3个任务

最好的方法是什么

该方法是否只是接收一个项目,或者我需要在那里拥有什么。。仅保存项目(在存储库中)也会保存相关任务吗?。。。 在视图中。。。我需要一个viewModel吗。。我很困惑。请帮忙

public ActionResult Create(Project p){

}

任务
模型集合添加到
项目
模型中,并使用
foreach
循环显示任务,或重复知道如何显示单个任务的部分视图。

任务
模型集合添加到
项目
模型中,并使用
foreach
循环显示任务,或者重复知道如何显示单个任务的局部视图。

以下是我将如何继续:

public class TaskViewModel
{
    public string Name { get; set; }
}

public class ProjectViewModel
{
    public string ProjectName { get; set; }
    public IEnumerable<TaskViewModel> Tasks { get; set; }
}
然后是视图(
~/Views/Projects/Create.cshtml
):


以下是我将如何继续:

public class TaskViewModel
{
    public string Name { get; set; }
}

public class ProjectViewModel
{
    public string ProjectName { get; set; }
    public IEnumerable<TaskViewModel> Tasks { get; set; }
}
然后是视图(
~/Views/Projects/Create.cshtml
):

@model AppName.Models.ProjectViewModel
@using (Html.BeginForm())
{
    <div>
        @Html.LabelFor(x => x.ProjectName)
        @Html.EditorFor(x => x.ProjectName)
        @Html.ValidationMessageFor(x => x.ProjectName)
    </div>

    @Html.EditorFor(x => x.Tasks)

    <input type="submit" value="Create!" />
}
@model AppName.Models.TaskViewModel
<div>
    @Html.LabelFor(x => x.Name)
    @Html.EditorFor(x => x.Name)
    @Html.ValidationMessageFor(x => x.Name)
</div>