我怎样才能在 MVC 3 视图中有一个 @Html.dropdownfor 驱动另一个


  • 我正在处理两种类型的数据:"类类型"和"纪律"。 类类型是驱动二级学科。 这个想法是每个类类型将有一个分配给他们的学科数量。 所以,我想做的是学科取决于 CLassType 的选择。 我怎么会在视图中使用 Microsoft MVC 3 框架执行此操作吗? 这以下是我的控制器/型号/视图代码:

    CONTROLLER:
    

    public actionresult create() { 列表 c_types = 新列表(); 列表光盘 = 新列表();

        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>
    }
    
  1. 在控制器中,使用业务规则基于 ClassTypeId 填充规程类型实体列表。

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

  3. 在您的视图中,在更改"类类型"字段时添加一个 javascript 事件。 在这种情况下,请使用 ajax 回调控制器操作,该操作基于类 ID 返回规程类型列表,并使用它来填充规程类型下拉列表。 这样,当用户选择不同的类类型时,学科类型列表也会更改。

类类型驱动二级学科

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

相关内容

最新更新