根据下拉列表中的选定值获取表格MVC 4

时间:2016-08-09 13:07:28

标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor

我有一个模型组件,子组件和评估:

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>

我可以选择组件,但我不知道如何以我需要的方式获取子组件。有人能帮我吗?感谢

0 个答案:

没有答案