Установите значение по умолчанию / нулевое значение с помощью Select TagHelper

В asp.net mvc вы можете использовать:

@Html.DropDownListFor(model => model.Category, ViewBag.Category as IEnumerable<SelectListItem>, "-- SELECT --", new { @class = "form-control" })

Используя asp.net 5, как мне включить значение по умолчанию или нулевое значение (- SELECT -) в taghelper:

<select asp-for="Category" asp-items="@ViewBag.Category"  class="form-control"></select>

person Reafidy    schedule 18.01.2016    source источник


Ответы (4)


Вы можете просто вставить элемент option внутри select:

<select asp-for="Category" asp-items="@ViewBag.Category"  class="form-control">
    <option disabled selected>--- SELECT ---</option>
</select>

Ключевое слово disabled в приведенном выше коде означает, что строка «--- SELECT ---» не может быть выбрана снова после выбора варианта в списке. Если вы хотите, чтобы пользователь мог снова очистить выделение (т.е. если он привязан к полю, допускающему значение NULL), просто опустите параметр disabled.

person Matt    schedule 18.01.2016
comment
Мне нужно было установить значение параметра в пустую строку, чтобы пользователь мог обнулить базовое поле int, допускающее значение NULL: ‹option value =› None ‹/option› - person DeveloperDan; 12.12.2017
comment
И если вы не хотите, чтобы отключенный параметр отображался в раскрывающемся списке, вы можете изменить его так, чтобы он не отображался. - person Shahab; 25.01.2018
comment
Для столбцов, допускающих значение NULL, параметр по умолчанию должен иметь значение = иначе модель не будет связываться - person Shadi Namrouti; 14.05.2019

Если вы хотите сохранить значение null в базе данных, используйте <option selected value="">Full Access</option>

person Muhammad Abrar Anwar    schedule 09.12.2018

Если вы используете asp-items для своей модели, он использует значение 0 для выбранного элемента, если у вас есть тег <option> со строкой по умолчанию без значения,

Вы должны использовать цикл для <option> и вывести параметр по умолчанию из цикла. Это пример для .Net Core с использованием asp-элементов:

<select asp-for="DepartmentUnit" asp-items="@Model.DepartmentUnits" class="form-control"></select>

А теперь это еще один пример использования цикла:

<select>
<option val="">--Select--</option>
foreach(item in Model.DepartmentUnits)
{<option val="@item.val">@item.title</option>}
</select>
person keivan kashani    schedule 06.03.2018

Этот ответ Мэтта:

    <select asp-for="Category" asp-items="@ViewBag.Category"  class="form-control">
        <option disabled selected>--- SELECT ---</option>
    </select>

также работает с проверкой. Вероятно, из-за того, что опция disabled кажется неправильным выбором.

Кстати: это также работает с MVC Core 3 ;-)

person Sven    schedule 28.10.2019