Selected value for dropdown list for mvc4

I created a ViewBag selection list in the Edit action and set the value to be selected as:

ViewBag.Doors = new SelectList( new[] { new {ID = 1, Name="1-Door"}, new {ID = 2, Name="2-Doors"}, new {ID = 3, Name="3-Doors"}, new {ID = 4, Name="4-Doors"}, new {ID = 5, Name="5-Doors"}, new {ID = 6, Name="6-Doors"}, new {ID = 7, Name="7-Doors"} }, "ID", "Name", advert.Doors); 

But in the view, the value for the drop-down menu is not selected by default.

My view code:

 @Html.DropDownListFor(model => model.Doors, (SelectList)ViewBag.Doors, "--Select--") @Html.ValidationMessageFor(model => model.Doors) 

The Door property will be numeric 1,2,3, ..

+4
source share
1 answer

How to do this using Annonymous in ViewBag?

overload

enter image description here

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" } }; } } } 
+12
source

Source: https://habr.com/ru/post/1499575/


All Articles