带有Razor的ASP.NET MVC4 - 按照从另一个下拉列表中选择的值过滤下拉列表

时间:2016-04-23 15:01:10

标签: javascript jquery asp.net-mvc razor html.dropdownlistfor

我必须按照从另一个下拉列表中选择的值过滤下拉列表的选项。在我的数据库中,我有一张包含所有国家的表格和一张表格,其中包含世界上所有城市的FK到相应的国家。

以下是我的观点和页面的一部分:

View

我的控制器方法(页面的GET方法,所有国家的加载和一个国家所有城市的加载):(我删除了图像)

我必须处理" onchange"第一个下拉列表的事件,修改第二个下拉列表的所有选项(在我的控制器中调用LoadCities方法并传递第一个下拉的所选项的值),但我不知道如何操作。

感谢您的帮助!!

UDPADE

感谢@Shyju的建议,但它仍然无效。我是学生,我不太了解这个主题,结果如下: Network Tab 您可以看到Content-Length为0,实际上响应面板为空。 为什么类型是xml?什么是" X-Requested-With"?我该如何解决?

3 个答案:

答案 0 :(得分:0)

使用第一个选择的onchange方法(客户端)并填充秒数'使用AJAX调用的选项。

答案 1 :(得分:0)

您可以在第一个下拉列表(国家/地区)上收听更改事件,阅读所选选项的值并对您的服务器进行ajax调用以获取该国家/地区的城市。

continue

现在你的$(function(){ $("#Country").change(function(){ var countryId = $(this).val(); var url = "@Url.Action("LoadCities,"Country")"+countryId; $.getJSON(url,function(data){ var options=""; $.each(data,function(a,b){ options+="<option value='"+ b.Value +"'>" + b.Text + "</option>"; }); $("#City").html(options); }); }); }); 应该以Json的形式返回citites列表。

LoadCities

答案 2 :(得分:0)

使用javascript或jquery OnChange方法。 并传递第一个下拉ID,然后使用Ajax通过传递下拉ID来调用该方法。