ASP.NET MVC Создание DropDownList с использованием атрибута UIHint

Я хотел бы знать, как я могу сгенерировать DropDownList с помощью атрибута UIHint. Я уже настроил некоторые из предопределенных атрибутов, но я не знаю, как действовать для создания DropDownLists.

Вот как я сделал с моим последним, и я хочу использовать его аналогичным образом:

public class CartProduct
{

    [Required]
    [UIHint("Spinner")]
    public int? Quantity { get; set; }

    [Required]
    [UIHint("MultilineText")]
    public string Description { get; set; }

}

1 ответ

Вот (непроверенный) общий пример с использованием обобщений. Там, вероятно, более простой способ достижения того же самого.

Модель:

public class CartProduct
{
    [UIHint("_DropDownList")]
    public DropDownListModel<ItemType> MyItems { get; set; }
}

Класс DropDownListModel:

public class DropDownListModel<T>
{
    public T SelectedItem { get; set; }

    public IEnumerable<T> Items { get; set; }
}

контроллер:

public ActionResult AnAction()
{
    var model = new CartProduct();
    model.MyItems = new DropDownListModel<ItemType>
    {
        Items = _yourListOfItems,
        SelectedItem = _yourSelectedItem
    };

    return View(model);
}

Шаблон редактора _DropDownList.cshtml:

@model DropDownListModel<object>

@Html.DropDownListFor(m => m.SelectedItem,
    new SelectList(Model.Items, Model.SelectedItem))

И, наконец, ваше мнение:

@model CartProduct

@Html.EditorFor(m => m.MyItems)

Это дает вам общий DropDownListModel что вы можете использовать где угодно, с любым типом. использование EditorFor а также UIHint указать шаблон редактора и повторно использовать вид повсюду.

Другие вопросы по тегам