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
указать шаблон редактора и повторно использовать вид повсюду.