【发布时间】:2014-10-14 16:49:36
【问题描述】:
我有一个 MVC 视图,它有一个带有 IEnumerable<SelectListItem> 的模型,它填充了一个 @Html.DropDownList(表单选择)。
我想编写代码,以便在选择下拉列表中的项目时,它将使用来自服务器的值填充另一个列表框(也是表单选择)。
我是否应该使用 AJAX 来获得一个单独的部分视图,其中包含列表框以及每次单击下拉列表时的值?或者我应该在加载时生成一个列表框,然后使用 WebAPI 来获取每次点击的数据?
这似乎是一个简单的问题,但我正在尝试找出我的模型和视图以及最佳方法。
【问题讨论】:
-
我会接受你的第一个建议
-
@MattBodily 任何具体原因,一种或另一种方式?我感谢 cmets。
-
局部视图将是您设置它的最简单方法。您也可以每次手动将数据加载到列表框中。谷歌搜索依赖下拉菜单将为您提供该方法的几个示例。设置起来需要更多的工作
-
对于这种级联情况,在更改父元素时使用 ajax 调用,我建议始终保持轻量级响应。因此,使用 Json Result 作为响应(在前端使用 JavaScript/jQuery 构造选项并将它们设置为 DropDownList),而不是在第一个列表选项项的 onchange 时使用 PartialView Result
-
@VenkataPanga 所以您还建议创建一个空列表框,然后使用 AJAX 调用填充它?
标签: c# asp.net asp.net-mvc asp.net-mvc-4 listbox