0

Ich habe ein SelectListItem Objekt in meinem Controller deklariert, ich kann sie in meine DropDownList in Create() Seite füllen, aber ich habe Probleme beim Versuch, Wert zu erhalten Vom Modell, um den ausgewählten Wert der DropDownList auf der Edit() -Seite festzulegen.Set-Wert der Dropdown-Liste basierend auf Wert aus der Datenbank in asp.net mvc5

Code of Create() in der Steuerung:

public ActionResult Create() 
    { 
     var tagList = new List<SelectListItem>(); 
     tagList.Add(new SelectListItem() { Text = "Classic", Value = "Classic" }); 
     tagList.Add(new SelectListItem() { Text = "Promo", Value = "Promo" }); 
     tagList.Add(new SelectListItem() { Text = "Limited", Value = "Limited" }); 
     tagList.Add(new SelectListItem() { Text = "Classic", Value = "Classic" }); 
     tagList.Add(new SelectListItem() { Text = "New", Value = "New" }); 

     var catList = new List<SelectListItem>(); 
     catList.Add(new SelectListItem() { Text = "Men", Value = "Men" }); 
     catList.Add(new SelectListItem() { Text = "Women", Value = "Women" }); 
     catList.Add(new SelectListItem() { Text = "Sport", Value = "Sport" }); 
     catList.Add(new SelectListItem() { Text = "Casual", Value = "Casual" }); 

     var statusList = new List<SelectListItem>(); 
     statusList.Add(new SelectListItem() { Text = "Available", Value = "Available" }); 
     statusList.Add(new SelectListItem() { Text = "Unavailable", Value = "Unavailable" }); 

     ViewBag.tagDropDown = tagList; 
     ViewBag.catDropDown = catList; 
     ViewBag.statusDropDown = statusList; 
     return View(); 
    } 

Ich bin in der Lage die Dropdownlist in aufzufüllen Seite Create() Ansicht mit all dem Viewbag (s).

Aber jetzt wollte ich die DropDownList in Edit() anzeigen Seite gleichzeitig ausgewählten Wert aus dem Modell festlegen.

Im Folgenden sind die Codes von Edit() Seite anzeigen:

<div class="form-group"> 
     @Html.LabelFor(model => model.category, htmlAttributes: new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @Html.DropDownListFor(model => model.category, new SelectList(ViewBag.catDropDown, "value", "text"), htmlAttributes: new { @class = "form-control" }) 
     </div> 
</div> 

Antwort

1

Alles, was Sie tun müssen, ist die category Eigenschaft Wert Ihrer Ansicht Modellobjekt in Ihrer Aktion bearbeiten Methode einzustellen.

public ActionResult Edit(int id) 
{ 
    var vm=new YourViewModel(); 
    vm.category="Sport"; // Replace this hard coded value with value from db 
    // to do : Load ViewBag.catDropDown 
    return View(vm); 
} 

Nun ist die DropDownListFor Hilfsmethode wird die Option „Sport“ ausgewählt machen, vorausgesetzt, Ihre Ansicht zu YourViewModel stark typisiert ist

Verwandte Themen