DropDownList OnSelectedIndexChanged не вызывается в ASP.NET MVC - PullRequest
1 голос
/ 23 января 2012

Скажите, пожалуйста, почему этот пример кода не работает на ASP.NET MVC?

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.onselectedindexchanged.aspx

Спасибо

1 Ответ

2 голосов
/ 23 января 2012

Этот код не работает, поскольку 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' соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...