Этот код не работает, поскольку asp.net mvc не знает элементов управления, используемых в веб-формах asp.net (ListControl является одним из этих элементов управления).Элементы управления WebForms полагаются на ViewState и javascripts, сгенерированные структурой webforms.Asp.net mvc не имеет понятия viewstate, и при этом он не генерирует javascript по умолчанию для страницы.
Если вы хотите инициировать действие со стороны клиента в asp.net mvc, вы можете написать чистый html и javascript (используяJQuery для простоты).В контроллере
//action to invoke dynamically
public ActionResult GetSomeData(int id)
{
return Content("id is " + id);
}
И в поле зрения
<select id="myselect">
<option value="1">One</option>
<option value="2">Two</option>
</select>
<script>
$(function(){
$('#mySelect').change(function(){
$.get('@Url.Action("GetSomeData")', {id: $(this).val()}, function(data) {
alert(data);
});
});
});
</script>
Это должно предупредить 'id is 1' и 'id is 2' соответственно.