Вам нужно использовать определенную библиотеку Ajax?
Ajax.Net Control Toolkit имеет элемент управления Cascading Dropdown , предварительно созданный для этой функции.
Пропущена часть MVC, в этом случае Ajax Control Toolkit не будет работать. JQuery, вероятно, является лучшим вариантом, поскольку он делает Ajax чрезвычайно простым для кодирования, и MS официально поддерживает его в сочетании с инфраструктурой MVC.
Если вы создали службу RESTful на своем сайте (должно быть много документации о том, как это сделать), вы можете вернуть json-ответ через jQuery, например:
Разметка:
<select id="opt1">
<option value='1'>Option 1</option>
<option value='2'>Option 2</option>
</select>
<select id="opt2" disabled></select>
Предполагая, что служба примет 'id' в качестве параметра и возвратит объект json, используя следующую схему, например:
[
{ name: 'option1', value: '1'},
{ name: 'option2', value: '2'}
]
Вы добавили бы этот javascript на страницу:
$(function() {
$('select#opt1').change(function(){
$.getJSON('/data/myservice',{id: this.value},
function(response) {
var options = '';
for (var i = 0; i < response.length; i++) {
options += "<option value='" + response[i].value + "'>"
+ response[i].name + "</option>";
}
$('select#opt2').removeAttr('disabled').html(options);
});
});
});
Краткое объяснение того, что там происходит; Код jQuery может быть немного похож на очистку лука, поэтому я буду брать его уровень за раз:
$(function(){})
является сокращением для $(document).ready(function(){})
, поэтому он запускает функцию при возникновении события готовности.
$('select#opt1').change(function(){})
находит <select>
с именем 'opt1' и запускает функцию при возникновении события изменения.
$.getJSON()
Аякс призывает вас. Ответы JSON возвращаются в виде строк и должны быть проанализированы в объекты JSON, что автоматически делает $ .getJSON для вас. Первое поле - это URL службы, второе - пара имя / значение, которое преобразуется в строку запроса, а третье - функция обратного вызова для обработки ответа.