我需要能够根据先前DropDownList的选择来填充DropDownList。
我注意到在SO上有类似的主题,遗憾的是,我需要在没有回发的情况下使用AJAX调用来完成这项操作,并且需要在MVC5中完成(如果可能的话)。
答案 0 :(得分:4)
实际上可以在没有AJAX的情况下完成,但仍然需要一些Javascript:
第一个和第二个下拉列表都应预先显示所有可用选项。对于第二个下拉列表中的每个选项,指定第一个下拉列表的值应该是可见的。例如:
<select id="firstDd">
<option value="car">Cars</option>
<option value="plane">Planes</option>
</select >
<select id="secondDd">
<option value="ferrari" data-display-on="car">Ferrari</option>
<option value="bugatti" data-display-on="car">Bugatti</option>
<option value="747" data-display-on="plane">Boeing 747</option>
<option value="757" data-display-on="plane">Boeing 757</option>
</select >
现在使用一些简单的javascript,您可以根据第一个下拉选项的值切换第二个下拉选项的可见性:
$('#firstDd').change(function(){
var value = $(this).val();
if(value)
{
var $secondDd = $('#secondDd');
var $selectedOption = $('option:selected', $(this));
$('option', $secondDd).hide();
$('option[data-display-on="'+value+'"]',$secondDd).show();
}
$($secondDd).val(null);
})
$('#firstDd').change();
以下是展示此方法的working JSFiDDLE