Как использовать атрибуты data- * с помощником Html.DropdownListFor? - PullRequest
1 голос
/ 23 апреля 2019

Я пытаюсь создать выпадающий список (используя bootstrap-select ) с различными атрибутами data-subtext для каждой опции.Дело в том, что когда я использую tag helper, он автоматически создает проверочные теги (что здорово), но запрещает мне использовать любые атрибуты data - * в опциях списка выбора.

Создание параметров с таким циклом отключает проверку на стороне клиента:

<select name="@Html.NameFor(model => Model.SelectedRoles)" id="@Html.IdFor(model => Model.SelectedRoles)" class="form-control selectpicker" data-live-search="true" autocomplete="off" data-size="8" multiple>
@foreach (var role in Model.RolesSelectListItems)
{
    <option data-subtext="@role.Description" value="@role.Id">@role.Code</option>
}
</select>

Создание такого списка не позволит использовать атрибуты данных:

@Html.DropDownListFor(x => Model.SelectedRoles, new SelectList(Model.RolesSelectListItems, nameof(RoleViewModel.Id), nameof(RoleViewModel.Code)),
            new { @class = "form-control selectpicker", @data_live_search = "true", @autocomplete = "off", @data_size = "8", @multiple = "" })

Myviewmodel выглядит следующим образом:

public IEnumerable<RoleViewModel> RolesSelectListItems { get; set; }

[Display(Name = "Requested roles")]
[Required(ErrorMessage = "Select at least one role")]
public IEnumerable<int> SelectedRoles { get; set; }

Возможно ли как-нибудь расширить Html.DropDownListFor , поэтому он добавит data-subtext для каждой опции, используя желаемое свойствозначение?Я хотел бы иметь автоматически созданные теги проверки и атрибуты данных, если это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...