代码之家  ›  专栏  ›  技术社区  ›  lomaxx

使用视图中的值填充DropDownList的ASP.NET MVC

  •  2
  • lomaxx  · 技术社区  · 16 年前

    我的控制器里有这个:

    ViewData["maskList"] = new SelectList(equipmentRepository.GetMasks(), "Id", "DisplayName");
    

    然后我用

    <div each="var nfa in mfa.NasalFittingAssessment">
        ${Html.DropDownList("NasalMaskTypeId", ViewData["maskList"] as IEnumerable<System.Web.Mvc.SelectListItem>, new { class = "ddl" })}                
    </div>
    

    注意,我使用的是spark视图引擎,所以这个dropdownlist是通过循环呈现到页面的。这意味着下拉列表的选定值将在循环的每次迭代中更改。

    我无法解决的是如何根据当前呈现到屏幕的值传入我想要将dropdownlist设置为的值。

    1 回复  |  直到 16 年前
        1
  •  1
  •   lomaxx    16 年前

    所以在玩了一会儿之后,我想:

    您只需在控制器中分配泛型集合,如下所示:

    ViewData["maskList"] = equipmentRepository.GetMasks();
    

    然后在视图中动态构造selectList,如下所示:

    <div each="var nfa in mfa.NasalFittingAssessment">
        ${Html.DropDownList("NasalFittingAssessment.NasalMaskType.Id", new SelectList(ViewData["maskList"] as IList<Equipment>, "Id", "DisplayName", nfa.NasalMaskType.Id), new { class = "ddl" })}                
    </div>