В основном я хочу вставить элемент в начало SelectList со значением по умолчанию 0 и текстовым значением «- Select One -»
Что-то вроде
SelectList list = new SelectList(repository.func.ToList());
ListItem li = new ListItem(value, value);
list.items.add(li);
Это можно сделать?
asp.net-mvc
selectlist
ГЕОЧЕТ
источник
источник
SelectList
действительно кажется просто помощником для привязки данных непосредственно к элементам. Если вы добавляете элементы вручную, используйтеList<SelectListItem>
вместо них.Ответы:
На самом деле нет необходимости делать это, если вы не настаиваете на значении 0. Расширение HtmlHelper DropDownList позволяет вам установить метку параметра, которая отображается как начальное значение в выборе с нулевым значением. Просто используйте одну из подписей DropDownList с меткой параметра.
источник
@Html.DropDownListFor( m => m.MenuSelection, (IEnumerable<SelectListItem>)ViewBag.Menu, "Select One", null )
например, msdn.microsoft.com/en-us/library/ee703567.aspx , включая нуль,htmlAttributes
чтобы избежать путаницы с подписью который принимает выражение, перечисление меню и объект (htmlAttributes).dataValueField
заdataTestField
чего это не сработало. Возможно, это сработало бы, приложив немного больше усилий, но я просто использовал одно из альтернативных решений. В любом случае спасибо!Я заставил это работать, заполнив SelectListItem, преобразовав в список и добавив значение с индексом 0.
источник
Это возможно.
источник
Мне понравился ответ @ AshOoO, но, как и @Rajan Rawal, мне нужно было сохранить состояние выбранного элемента, если таковое имеется. Поэтому я добавил свои настройки в его метод
AddFirstItem()
источник
Это должно сделать то, что вам нужно, просто отправьте свой список выбора, и он вернет список выбора с элементом в индексе 0
Вы можете настроить текст, значение или даже индекс элемента, который вам нужно вставить
источник
Здесь html помощник для вас
источник
Метод .ToList (). Insert (..) помещает элемент в ваш список. Можно указать любую позицию. После ToList просто добавьте .Insert (0, "- - Первый элемент - -")
Ваш код
Новый Код
источник
Может показаться не очень элегантным, но я обычно делаю что-то вроде этого:
источник
Хорошо, мне нравится чистый код, поэтому я сделал это методом расширения
Использование (на примере):
источник
Поскольку этот вариант может потребоваться по-разному, я пришел к выводу, что нужно разработать объект, чтобы его можно было использовать в различных сценариях и в будущих проектах.
сначала добавьте этот класс в свой проект
Теперь в Controller Action вы можете сделать вот так
И, наконец, в View вы напишете такой код.
источник
Обходной путь - использовать ответ @ tvanfosson (выбранный ответ) и использовать JQuery (или Javascript), чтобы установить значение параметра равным 0:
Надеюсь это поможет.
источник
Попробуйте что-то вроде следующего кода:
источник
Я не знаю, если у кого-нибудь есть лучший вариант ...
источник