1
  • 我正在处理两种类型的数据:“ClassType”和“Disciplines”。ClassType 是驱动次要学科的主数据类型。这个想法是每个 ClassType 都将分配有许多 Disciplines。所以,我想做的是让学科取决于 CLassType 的选择。我将如何使用视图中的 Microsoft MVC 3 框架来做到这一点?以下是我的控制器/模型/视图代码:

    CONTROLLER:
    

    公共 ActionResult Create() { List c_types = new List(); 列表盘 = 新列表();

        c_types = m_activeContract.getCtypeList();
        disc = m_activeContract.getDisciplineList();
        // TODO:  fetch from repository or database
    
        var model = new ExampleDocument
        {
            ClassTypes = a_modes,
            Disciplines = disc
        };
    
        return View(model);
    } 
    
    
    MODEL:
    
    public int ClassTypeId { get; set; }
    public int DisciplineId { get; set; }
    public List<ClassType> ClassTypes { get; set; }
    public List<Discipline> Disciplines { get; set; }
    
    VIEW:
    
    @using (Html.BeginForm("Create", "Example") ) {
            <p>Class Type: 
            @Html.DropDownListFor( x => x.ClassTypeId,
                     new SelectList(Model.ClassTypes, "Id", "Name"))</p>
            <p>Discipline:
            @Html.DropDownListFor( x => x.DisciplineId,
                    new SelectList(Model.Disciplines, "Id", "Name")) </p>
            <p>
                <input type="submit" value="Create" />
            </p>
    }
    
4

2 回答 2

1
  1. 在您的控制器中,使用您的业务规则根据 ClassTypeId 填充您的学科类型实体列表。

  2. 此外,添加一个控制器操作,该操作为传入的类类型 ID 获取学科类型实体的 json 结果。

  3. 在您看来,在 Class Type 字段的更改上添加一个 javascript 事件。在这种情况下,使用 ajax 回调到控制器操作,该操作根据类 id 返回一个学科类型列表,并使用它来填充你的学科类型下拉列表。这样,当用户选择不同的 Class Type 时,DisciplinesTypes 列表会发生变化。

于 2012-05-15T14:08:58.020 回答
0

ClassType 驱动二级学科

所以我认为你必须在 ClassType 的下拉菜单中使用 javascript 进行 ajax 调用并在 Discipline 中填充数据

于 2012-05-15T14:01:56.127 回答