Каков наилучший способ создания выпадающих списков в 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 вместо.

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