How to do this using Annonymous in ViewBag?
overload

Controller action method
public ActionResult DropDownListFor() { ViewBag.Doors = new SelectList( new[] { new {Value = 1,Text="1-Door"}, new {Value = 2,Text="2-Door"}, new {Value = 3,Text="4-Door"}, new {Value = 4,Text="4-Door"}, new {Value = 5,Text="5-Door"}, new {Value = 6,Text="6-Door"}, new {Value = 7,Text="7-Doors"} }, "Value", "Text", 7); return View(); }
View
@Html.DropDownList("Doors")
:
How to do this with SelectListItem?
Action method
[HttpGet] public ActionResult DropDownListFor() { List<SelectListItem> items = new List<SelectListItem>(); items.Add(new SelectListItem { Text = "Action", Value = "0" }); items.Add(new SelectListItem { Text = "Drama", Value = "1" }); items.Add(new SelectListItem { Text = "Comedy", Value = "2", Selected = true }); items.Add(new SelectListItem { Text = "Science Fiction", Value = "3" }); ViewBag.MovieType = items; return View(); }
View
@using (Html.BeginForm("Action", "Controller", FormMethod.Post)) { @Html.DropDownList("MovieType") }
:
How can I do this using the View Model?
View
@using (Html.BeginForm("Action", "Controller", FormMethod.Post)) { @Html.DropDownListFor(m => m.Id, Model.DDLList, "Please select"); }
Action method
[HttpGet] public ActionResult DropDownListFor() { return View(new Models.Dropdown()); }
Show model
public class Dropdown { public string Id { get; set; } public List<SelectListItem> DDLList { get { return new List<SelectListItem>() { new SelectListItem { Text = "1-Door", Value = "1", Selected = true }, new SelectListItem { Selected = false, Value = "2", Text = "2-Door" } }; } } }