2016-11-27 4 views
0

Ich habe eine Dropdown-Liste, die über eine ViewBag-Variable gefüllt wird, ich frage mich, wie ich den ausgewählten Index dieser Liste mit dem ID-Wert festlegen kann.Html.DropdownList mit ausgewähltem Wert

Dies ist, wo ich die ViewBag Variable erstellen, die id beachten Sie, ist das, was ich den Standard ausgewähltes Element in der Liste zu setzen verwenden mag:

var events = db.Events.Select(e => new 
      { 
       id = e.EventID, 
       Name = e.EventTitle 

      }).OrderBy(e => e.Name).ToList(); 
      ViewBag.EventsList = new MultiSelectList(events, "id", "Name"); 

Dies ist der Drop-Down in der Ansicht ist:

Gibt es auf jeden Fall könnte ich den Standard-Select-Wert mit der Id-Eigenschaft im Controller gesetzt?

+1

das Set Wert der Eigenschaft 'id' in der GET-Methode, bevor Sie das Modell an die Ansicht übergeben (und Sie können einfach' ViewBag.EventsList = new SelectList (db.Events, "EventID", "EventTitle") verwenden; ') –

Antwort

1

Sie sollten Ansicht Modelle verwenden und vergessen Sie ViewBag Denken Sie daran, als ob es nicht existierte. Sie werden sehen, wie einfach Dinge werden. So definieren Sie eine Ansicht Modell:

public class MyViewModel 
{ 
    public int SelectedCategoryId { get; set; } 
    public IEnumerable<SelectListItem> Categories { get; set; } 
} 

und dann diese Ansicht Modell bevölkert von der Steuerung:

public ActionResult NewsEdit(int ID, dms_New dsn) 
{ 
    var dsn = (from a in dc.dms_News where a.NewsID == ID select a).FirstOrDefault(); 
    var categories = (from b in dc.dms_NewsCategories select b).ToList(); 

    var model = new MyViewModel 
    { 
     SelectedCategoryId = dsn.NewsCategoriesID, 
     Categories = categories.Select(x => new SelectListItem 
     { 
      Value = x.NewsCategoriesID.ToString(), 
      Text = x.NewsCategoriesName 
     }) 
    }; 
    return View(model); 
} 

und schließlich in Ihrer Ansicht verwendet die stark DropDownListFor Helfer getippt:

@model MyViewModel 

@Html.DropDownListFor(
    x => x.SelectedCategoryId, 
    Model.Categories 
) 
Verwandte Themen