我有一个模型组件,子组件和评估:
public class Evaluation
{
public virtual int EvaluationId { get; set; }
public virtual int ComponentId { get; set; }
public virtual Component Component { get; set; }
public virtual int UserCourseId { get; set; }
public virtual UserCourse User { get; set; }
public virtual int Grade { get; set; }
}
public class Component
{
public virtual int ComponentId { get; set; }
public virtual string Type { get; set; }
public virtual string Name { get; set; }
public virtual Course Course { get; set; }
public virtual List<Subcomponent> Subcomponents { get; set; }
}
public class Subcomponent
{
public virtual int SubcomponentId { get; set; }
public virtual int ComponentId { get; set; }
public virtual string TypeSub { get; set; }
public virtual string NameSub { get; set; }
public virtual int ParentId { get; set; }
public virtual Subcomponent Parent { get; set; }
public virtual List<Subcomponent> Childs { get; set; }
public virtual Component Component { get; set; }
}
正如您所看到的,组件具有子组件列表,子组件可以具有无限子组件。 我需要给一个组件提供等级,但如果该组件有一个子组件,则必须给该子组件提供等级, 等等。最后一个子组件是能够给出等级的子组件。 我的想法是选择一个组件,并在下拉列表中选择组件时,会出现一个包含子组件的表。 我有这个观点:
@model SGP.Models.Evaluation
...
<div class="editor-label">
@Html.LabelFor(model => model.ComponentId, "Component")
</div>
<div class="editor-field">
@Html.DropDownList("ComponentId", String.Empty)
@Html.ValidationMessageFor(model => model.ComponentId)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Grade)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Grade)
@Html.ValidationMessageFor(model => model.Grade)
</div>
我可以选择组件,但我不知道如何以我需要的方式获取子组件。有人能帮我吗?感谢