Управляет ли ваш выпадающий список на стороне сервера (тег asp: dropdownlist) или на стороне клиента (выберите тег)?
Если они находятся на стороне сервера, вам нужно ввести идентификатор клиентской стороны для элементов управления. Это может быть причиной отсутствия событий.
В ASP.NET серверные элементы управления имеют другой сгенерированный идентификатор стороны клиента (поэтому DropDownList с идентификатором «Страна» будет иметь идентификатор стороны клиента, например, ct01_ct050_Country.
В этих случаях вы можете ввести идентификатор клиентской стороны во время выполнения вашей разметки, используя:
$('#<% Country.ClientID %>').change(function() {
//code here
});
Во время выполнения обработанный код / разметка в конечном итоге будет выглядеть так:
$('#ct01_ct050_Country').change(function() {
//code here
});
Другой вариант, позволяющий избежать идентификаторов клиент / сервер, - применить уникальное имя класса CSS к элементу управления и вместо него выбрать:
Markup:
<asp:DropDownList ID="Country" CssClass="countryDD" runat="server" />
и jQuery:
$('select.countryDD').change(function () {
//code here
});
Этот ответ хорошо применим к обычному ASP.NET. Я не уверен, имеет ли это отношение к MVC, потому что я не использую этот фреймворк, но я бы предположил, что он довольно близок по концепции или по разметке к клиентскому коду.
Надеюсь, это поможет ...