在MVC中使用Ajax创建三个级联下拉列表

时间:2009-04-07 06:05:26

标签: asp.net-mvc

我有三个下拉列表,每个依赖于前一个。

使用MicrosoftAjax& amp;网络服务?

我还想在编辑视图中选择值。

我见过斯蒂芬沃尔特的tip41

但我在每个视图上都有错误,即

 <%= Html.DropDownList("--Select Make--", "Makes") %>

CS1061:'System.Web.Mvc.HtmlHelper'不包含'DropDownList'的定义,也没有扩展方法'DropDownList'接受类型'System.Web.Mvc.HtmlHelper'的第一个参数'(你错过了使用指令或程序集引用吗?)

那是什么原因?我正在使用MVC 1.0。

1 个答案:

答案 0 :(得分:1)

我认为您已经转换了名称/选项标签。您可能还想尝试使用带有value参数的签名。但是,我不确定为什么会遇到编译问题,因为有一个版本的扩展需要两个字符串参数。 Docs可以在MSDN找到。

<%= Html.DropDownList( "Makes",
                       "--Select Make--" ) %>

OR

<%= Html.DropDownList( "Makes",
                       (IEnumerable<SelectListItem>)ViewData["Makes"],
                       "--Select Make--" ) %>

对于级联下拉列表,您可能希望使用jQuery,并根据第一个菜单中的选择为下一个菜单获取JSON键值对。在选择中添加一个onChange处理程序,并对控制器中的操作执行AJAX get / post以获取新值。我构造了一个键值对列表,并在JsonResult中返回它。在ajax查询的成功处理程序中,我获取该结果并使用返回的JSON用新选项替换相应select的内容。