C# asp.net核心嵌套表单

C# asp.net核心嵌套表单,c#,asp.net,model-view-controller,nested-forms,C#,Asp.net,Model View Controller,Nested Forms,我有3个模型-学校、教室和课程 一所学校可以有许多教室,一个教室可以有许多课程在里面教授 public class School { public int SchoolId { get; set; } public string SchoolName { get; set; } public List<Classroom> Classrooms { get; set; } } public class Classroom { public int C

我有3个模型-学校、教室和课程

一所学校可以有许多教室,一个教室可以有许多课程在里面教授

public class School
{
    public int SchoolId { get; set; }
    public string SchoolName { get; set; }
    public List<Classroom> Classrooms { get; set; }
}

public class Classroom
{
    public int ClassroomId { get; set; }
    public string Room { get; set; }
    public List<Course> Courses { get; set; }
    public virtual int SchoolId { get; set; }
}

public class Course
{
    public int CourseId { get; set; }
    public string CourseName { get; set; }
    public virtual int ClassroomId { get; set; }
}
公立学校
{
公共int SchoolId{get;set;}
公共字符串SchoolName{get;set;}
公共列表{get;set;}
}
公共课堂
{
public int ClassroomId{get;set;}
公共字符串室{get;set;}
公共列表课程{get;set;}
公共虚拟int SchoolId{get;set;}
}
公共课
{
public int CourseId{get;set;}
公共字符串CourseName{get;set;}
公共虚拟int ClassroomId{get;set;}
}
我想为学校创建CRUD操作,在这里我可以将0添加到多个教室中,并在每个教室中创建0到多个课程,所有这些都是一种形式。允许用户在这些教室中动态添加教室和课程,所有这些都在创建学校的过程中进行

我现在实现这一点的方法是硬编码(其中School是@Model):



我希望用户能够添加更多教室和课程,或者能够在表单上动态删除它们。

您可以使用局部视图和JQuery在html表中创建动态行

我有一个资产转移表,至少需要一个行项目。我放置了一个资产选择列表和一个按钮,用于通过局部视图将资产及其详细信息(行项目)添加到html表中

局部视图

@model-ITFixedAssets.Models.TransferLineItem
@{//这有助于命名主视图/页面中的控件
Models.TransferLineItem TransferLineItem=新模型.TransferLineItem();
}
请选择
新的
好
坏的

应该是另一种方式吗?学校不应该有“课程”而不是教室吗?课程是否必须有附加的课堂特效?此外,如果您使用实体框架,它将自动创建具有多对多关系的新表。-顺便说一句,它不叫“零对多”,它叫“一对多”,当我说“零对多”时,我指的不是数据库关系,而是列表课程和列表教室,其中可以有0对多个项目。我正在寻求有关嵌套表单的帮助,因此视图是MVC模式的一部分。虽然这可能会回答(一年前)的问题,但您可以通过更多文本、代码和文档来扩展您的答案。请编辑您的问题:)
<div class="col-md-10">
    <input asp-for="@Model.SchoolName" class="form-control" />
</div>
<div class="col-md-10">
    <input asp-for="@Model.Classroom[0].Room" class="form-control" />
</div>
<div class="col-md-10">
    <input asp-for="@Model.Classroom[0].Course[0].CourseName" class="form-control" />
</div>
<div class="col-md-10">
    <input asp-for="@Model.Classroom[0].Course[1].CourseName" class="form-control" />
</div>
<div class="col-md-10">
    <input asp-for="@Model.Classroom[0].Course[3].CourseName" class="form-control" />
</div>