Каков наилучший способ создания выпадающих списков в MVC 4?
Я хочу знать, каков наилучший способ создания выпадающих списков в MVC 4? С ViewBag или другим подходом?
1 ответ
Решение
Я бы сказал, что поскольку элементы являются значениями переменных в вашем представлении, они принадлежат в модели представления. Модель представления не обязательно предназначена только для предметов, возвращающихся из вида.
Модель:
public class SomethingModel
{
public IEnumerable<SelectListItem> DropDownItems { get; set; }
public String MySelection { get; set; }
public SomethingModel()
{
DropDownItems = new List<SelectListItem>();
}
}
контроллер:
public ActionResult DoSomething()
{
var model = new SomethingModel();
model.DropDownItems.Add(new SelectListItem { Text = "MyText", Value = "1" });
return View(model)
}
Посмотреть:
@Html.DropDownListFor(m => m.MySelection, Model.DropDownItems)
Заполните это в контроллере или там, где это еще подходит для сценария.
В качестве альтернативы, для большей гибкости, переключатель public IEnumerable<SelectListItem>
за public IEnumerable<MyCustomClass>
а затем сделать:
@Html.DropDownFor(m => m.MySelection,
new SelectList(Model.DropDownItems, "KeyProperty", "ValueProperty")
В этом случае вам также, конечно, придется изменить действие контроллера для заполнения model.DropDownItems
с примерами MyCustomClass
вместо.