Ich habe drei Dropdownliste für den Bearbeitungsmodus, ich bin in der Lage, den richtigen Text in DDLFor zu füllen, aber die ID davon wird als 0 auf reichen, aber wenn ich ein anderes Team auswählen es kommt mit korrekter ID auf. Es folgt mein CodeDropdownliste für ausgewählten Text und Wert ASP.NET MVC
Ansichtsmodell
public List<SelectListItem> TeamOneList { get; set; }
public string SelectedTeamOne { get; set; }
.... //remaining properties for DDL's..........
-Controller
List<SelectListItem> TeamOneList = new List<SelectListItem>();
foreach (var item in db.Teams)
{
TeamOneList.Add(new SelectListItem { Text = item.TeamName, Value = item.TeamId.ToString() });
}
string SelectedTeamOne = db.Teams.Where(o => o.TeamId == fixture.TeamOneId).Select(s => s.TeamName).Single();
Ansicht
@Html.DropDownListFor(model => model.TeamOneId, Model.TeamOneList, Model.SelectedTeamOne, new { @class = "form-control" })
Der dritte Parameter von 'DropDownListFor()' ist das Etikett ('null' Option). Es muss etwas sein wie '' -Bitte wählen- ''(nicht' Model.SelectedTeamOne') –
Zweitens ist Ihre Bindung an die 'TeamName' -Eigenschaft, aber die Option Werte sind für die' TeamId' -Eigenschaft. Es muss 'sein.Wählen (s => s.TeamId)' (und da 'TeamId' scheint' int' zu sein, dann 'SelectedTeamOne' sollte auch' int' sein, nicht 'string' –
Im Bearbeitungsmodus muss ich bevölkern, was auch immer aufgeführt ist Stephen – user3543878