Как использовать множественный выбор в mvc 4? - программирование
Подтвердить что ты не робот

Как использовать множественный выбор в mvc 4?

Я хочу использовать несколько select в Chosen. У меня есть модель умения, например,

public class Skill 
    {
        public int Id { get; set; }
        public string Name { get; set; }        
    }

Это работает в моем приложении:

    <select data-placeholder="Choose a Country..." class="chzn-select" multiple >
           <option value=""></option>
           <option value="United States">United States</option>
           <option value="Albania">Albania</option>
           <option value="Algeria">Algeria</option>
   </select>

Я хочу заменить данные стран своими данными. В контроллере я пишу:

        var list = MyService.LoadAllSkills();
        ViewBag.Skills = new MultiSelectList(list, "Id", "Name");

В поле зрения:

@Html.ListBox("Name", ViewBag.Skills as MultiSelectList,
              new { @class = "chzn-select" } )

Просмотреть результат @Html.ListBox() и @Html.DropDownList() не похож на <select>

Я получаю такой результат:

enter image description here

Но я хочу получить результат как

enter image description here

Как я могу изменить выбранный образец?

4b9b3361

Ответ 1

Единственное различие, которое я вижу между жестко запрограммированным примером (который вы указали, который работает), и тем, который вы создаете с помощью помощника ListBox, является отсутствие атрибута data-placeholder. Итак:

@Html.ListBox(
    "Countries", 
    ViewBag.Skills as MultiSelectList,
    new { @class = "chzn-select", data_placeholder = "Choose a Country..." } 
)

Это должно, по крайней мере, создать такую ​​же разметку, что и то, что вы сказали. Если это не работает, возможно, вы неправильно настроили плагин или у вас есть другие ошибки JavaScript. Ознакомьтесь с документацией плагина о том, как он должен быть настроен.

Ответ 2

как упоминалось в других упомянутых чуваках, кажется, что ваша проблема не связана с сервером (бритвой), это на самом деле клиентская сторона (скорее всего, ваша инициализация плагина JQuery).

возможно, когда инициализация плагина, называемая html DOM, еще не сгенерирована, поместите свою инициализацию плагина script в конец тела или внутри $(document).ready() и не забудьте взглянуть на консоль, чтобы узнать, есть ошибки

счастливое кодирование