0

我的模型中有两个 DropDownList 元素。

[DisplayName("Site")]
public List<KeyValuePair<int, string>> Site { get; set; }
public int SelectedSiteID { get; set; }
<%= Html.DropDownListFor(model => model.SelectedSiteID, new SelectList(Model.Site, "Key", "Value"))%>

[DisplayName("Data Center")]
public List<KeyValuePair<int, string>> DataCenter { get; set; }
public int SelectedDataCenterID { get; set; }
<%= Html.DropDownListFor(model => model.SelectedDataCenterID, new SelectList(Model.DataCenter, "Key", "Value"))%>

当用户对第一个选择进行更改时,我试图在我的第二个 DropDownList 中修改 ListItem 的集合。

我认为这可以通过以下方式实现,但我想确认这是一种很好的做法:

  • 使用 jQuery,绑定到第一个 DropDownList 的更改事件。
  • 响应更改事件时——使用新选择的值向服务器发送 AJAX 请求。
  • 服务器将以 JSON 响应,该 JSON 表示第二个 DropDownList 的 ListItem 对象集合。
  • 使用 jQuery,我修改了第二个 DropDownList 的选择,使其包含返回的 JSON 元素。

这一切似乎有点……非 MVC3y,如果你愿意的话。这是实现我所要求的标准方式,还是有更清晰的方式?

4

2 回答 2

0

我认为在这种情况下最好使用 Jquery。

最好的办法是将 firstDropdown 框绑定到 Jquery 中的 OnChange 事件,然后使用 $.ajax 从控制器中的 JSONresult 加载数据。加载该数据后,将数据加载到 secondDropdown 中。

如果您需要一些代码帮助,请告诉我。

于 2012-10-31T20:07:31.613 回答
0

我使用 jQuery Cascade Select 插件为我做这件事。它很容易插入,不需要你重新发明轮子。 http://code.google.com/p/jquery-cascade/

于 2012-10-31T20:13:38.700 回答