2017-02-22 2 views
-2
Arbeits

Ausgewählte drowdown Wert nichtgewählter Wert für @ Html.DropDownListFor nicht

@Html.DropDownListFor(x => x.AgeGroup, ViewBag.AgeGroup as SelectList, "Please select", new {@class = "form-control", id = "ddl_InvAgeGroup", name = "AgeGroup"}) 
+0

Das Format wird '@ Html.DropDownList (m => m.yourProperty, Model.YourSelectList, "Bitte wählen", neue {...}' - Sie brauchen eine zu bindende Eigenschaft und eine Eigenschaft für die 'SelectList'. Wenn der Wert der Eigenschaft dem Wert einer der Optionen entspricht, wird sie ausgewählt. –

+0

Ich habe meinen Code geändert, aber nicht den ausgewählten Wert und stattdessen den Wert in drop unten zeigt es 2 mal Dropdown-Werte – ArunRaju

+0

Sie scheinen die gleiche Eigenschaft für die Sammlung und den ausgewählten Wert zu verwenden: 'AgeGroup'. So sollte dieser Helfer nicht verwendet werden. Sie benötigen 2 Eigenschaften für Ihr Ansichtsmodell: einen Skalartyp, der den ausgewählten Wert enthält, und eine IEnumerable-Eigenschaft, die die Liste der möglichen Werte enthält, die im Dropdown-Menü angezeigt werden sollen. –

Antwort

0

den gewünschten Effekt zu erzielen angezeigt bekommen Sie 2 Objekte auf Ihrer Ansicht nach Modell haben könnten: eine, die den ausgewählten Wert halten wird und eine dass die Liste der möglichen Werte halten:

public ActionResult Index() 
{ 
    var model = new MyViewModel(); 

    // Obviously the list of possible values might be 
    // coming from a database or something else 
    model.AgeGroups = new[] 
    { 
     new SelectListItem { Value = "1", Text = "group 1" }, 
     new SelectListItem { Value = "2", Text = "group 2" }, 
     new SelectListItem { Value = "3", Text = "group 3" }, 
    }; 

    // an element with Value="2" from the previous collection will be selected 
    model.AgeGroup = "2"; 

    return View(model); 
} 
012:

public class MyViewModel 
{ 
    public string AgeGroup { get; set; } 
    public IEnumerable<SelectListItem> AgeGroups { get; set; } 
} 

, die Sie in Ihrem Controller-Aktion bevölkern würden

und schließlich in der Ansicht:

@Html.DropDownListFor(
    x => x.AgeGroup, 
    Model.AgeGroups, 
    "Please select", 
    new { @class = "form-control", id = "ddl_InvAgeGroup", name = "AgeGroup" } 
) 
+0

aber ich brauche dynamische Daten – ArunRaju

+0

Sicher, projizieren Sie einfach Ihre dynamischen Daten in die 'AgeGroups' Collection Eigenschaft Ihres View-Modells, genauso wie Sie Ihre' ViewBag.AgeGroup' bevölkert haben. –

Verwandte Themen