Добавление атрибутов в MVC Select List - PullRequest
0 голосов
/ 11 февраля 2019

Я создаю список выбора в своем приложении MVC, и мне нужно скопировать что-то, что написано в HTML.

У меня есть следующий код, который в настоящее время получает данные из модели и создает список выбора с опциямидля каждого элемента в модели, включая JobID в качестве значения, WebDescription в качестве текста и использование категории для классификации элементов в раскрывающемся списке.

var basketDetails = new SelectList(items.basketJobCodes, "jobID", "WebDescription", "category", 1);

List<SelectListItem> basketItems = basketDetails.ToList();

basketItems.Insert(0, (new SelectListItem { Text = "-- Please pick an item for collection --", Value = "none", Selected = true }));

@Html.DropDownList("basket-item", basketItems, new { @id = "edit-basket-item", @class = "form-select"})

Текущая версия имеет дополнительный атрибут в каждом раскрывающемся спискеitem под названием itemCat, который дает число, используемое для категоризации каждого элемента (см. ниже), однако я не могу понять, как добавить атрибут в мой список выбора и получить значение из модели, как я сделал с JobID, WebDescription и категорией.

<optgroup label="1 for £10">
@foreach (var item in ViewBag.largeJobs)
{ 
<option value="@item.jobID" itemCat="@item.bags"@item.WebDescription</option>
}
</optgroup>

Есть идеи?

1 Ответ

0 голосов
/ 11 февраля 2019

Вот простое решение.

С MVC4 вы можете получить идентификатор и имя элемента в дереве выражений с помощью помощников HTML.NameFor и HTML.IdFor

<select name="@Html.NameFor(Function(model) model.jobId)"
        id="@Html.IdFor(Function(model) model.jobId)">
    @For Each item In ViewBag.largeJobs
        @<option value="@item.jobID"
                 @(If(item.jobID = Model.CityId, "selected", ""))
                 itemCat="@item.bags">
            @item.WebDescription
        </option>
    Next
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...