/ / Valeur sélectionnée pour dropdownlistfor dans mvc4 - asp.net-mvc, asp.net-mvc-3, asp.net-mvc-4

Valeur sélectionnée pour dropdownlistfor dans mvc4 - asp.net-mvc, asp.net-mvc-3, asp.net-mvc-4

J'ai créé une liste de sélection ViewBag dans l'action Edit et défini la valeur à sélectionner comme suit:

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);

Mais dans la vue, la valeur du menu déroulant n'est pas sélectionnée par défaut.

Mon code de vue est:

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

La propriété Les portes seront numériques 1,2,3, ..

Réponses:

12 pour la réponse № 1

Comment vais-je le faire en utilisant un type anonyme dans ViewBag?

Surcharge

entrer la description de l'image ici

Méthode d'action du contrôleur

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();
}

Vue

@Html.DropDownList("Doors")






Comment vais-je le faire en utilisant SelectListItem?

Méthode d'action

[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();
}

Vue

@using (Html.BeginForm("Action", "Controller", FormMethod.Post))
{
@Html.DropDownList("MovieType")
}






Comment vais-je le faire en utilisant View Model?

Vue

@using (Html.BeginForm("Action", "Controller", FormMethod.Post))
{
@Html.DropDownListFor(m => m.Id, Model.DDLList, "Please select");
}

Méthode d'action

[HttpGet]
public ActionResult DropDownListFor()
{
return View(new Models.Dropdown());
}

Voir le modèle

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"
}
};
}
}
}