Как использовать множественный выбор в 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]()
Как я могу изменить выбранный образец?
Ответы
Ответ 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()
и не забудьте взглянуть на консоль, чтобы узнать, есть ошибки
счастливое кодирование