1

Я не уверен, что мне не хватает, когда я выбираю элемент из DropdownList (Campus). Я хочу, чтобы FirePostBack Fire и загружал другой DropdownList, который строится, но его не происходит ... . Я пытаюсь работать с AutoPostBack на DropDownListForAutoPostBack using layoutBootstrap layout - MVC 4

Что такая проблема: ниже код отлично подходит для любого регулярного MVC 4 макета, но имеющие проблем только с TwitterBootStrap макета работает, что мне нужно изменить или работать с раскладкой TwitterBootStrap?

вот мой код :,

@using (Ajax.BeginForm("CampusSelect", "Facility", new AjaxOptions { UpdateTargetId = "Campus_Building" })) 
{ 
    @Html.DropDownListFor(
      m => m.CampusId, 
      new SelectList(Model.GetAllCampus(), "CampusId", "Text"), 
      string.Empty 
     ) 
} 
<script type="text/javascript"> 
    $('#CampusId').change(function() { 
     $(this).parents('form').submit(); 
    }); 
</script> 
+0

Это, как я делаю это в тот же сценарий: Удалить сценарий и добавить ', новые {OnChange = «$ (this.form). submit(); "})' на ваш 'DropDownListFor' после' string.Empty'. Но как предостережение, использование вашего кода также сработало для меня. – MikeSmithDev

+0

'Использование вашего кода также сработало для меня', вы используете макет загрузочного буфера twitter? –

+0

yes ... Вы уверены, что 'ID' выпадающего списка верен? Предоставлял ли я код, который я вам предлагаю? – MikeSmithDev

ответ

1

Для простоты, вы можете использовать следующий код применить onchange событие.

@Html.DropDownListFor(
    m => m.CampusId, 
    new SelectList(Model.GetAllCampus(), "CampusId", "Text"), 
    string.Empty, 
    new { onchange = "$(this.form).submit();"} 
) 

Однако ваш сценарий также должен работать так, как есть ... это просто более громоздко. Я предполагаю, что он не работает, потому что есть другой элемент с id="CampusId" на странице где-то.

1

Вы используете неправильную перегрузку. Вы не устанавливаете идентификатор раскрывающегося списка. Это должно быть:

@Html.DropDownListFor(
    m => m.CampusId, 
    new SelectList(Model.GetAllCampus(), "CampusId", "Text"), 
    new { id = "CampusId" } 
) 

Тогда ваш скрипт будет работать.

Для того, чтобы избежать путаницы с перегрузкой, используйте TwitterBootstrapMVC:

@Html.Bootstrap().DropDownListFor(m => m.CampusId, new SelectList(Model.GetAllCampus(), "CampusId", "Text")).Id("CampusId") 
+0

Его идентификатор dropdownlist уже был, вероятно, «CampusId», я не думаю, что он его исправит (и ему не хватает '@' 'new {@id ='), я не видел этого TwitterBootstrapMVC до того ... Мне нужно проверить это. – MikeSmithDev