Ich habe momentan einige Probleme damit, meine zu bekommen SelectList
auf einen definierten Anfangswert zurücksetzen. Ich habe ein Snippet erstellt, um das Problem zu demonstrieren: https://dotnetfiddle.net/ozroT1
Grundsätzlich möchte ich, dass meine DropDownList angezeigt wird [null,1,2,3,4,5]
was wird zugeordnet Model.ChosenNumber
.
Das Modell, das ich für dieses Aussehen habe, wird durch diese vereinfachte Version dargestellt:
public class SampleViewModel
{
public int? ChosenNumber;
public IEnumerable<SelectListItem> PickList;
}
Ich erschaffe ein List<SelectListItem>
so:
List<SelectListItem> pickNumberList = new List<SelectListItem>();
pickNumberList.AddRange(Enumerable.Range(1, 5).Select( l => new SelectListItem { Text = l.ToString(), Value = l.ToString() }));
pickNumberList.Insert(0, new SelectListItem { Text = "", Value = "-1" });
und füllen Sie dann das Modell:
SampleViewModel model = new SampleViewModel();
model.ChosenNumber = 3;
model.PickList = new SelectList(pickNumberList, "Value", "Text");
return View(model);
Dann endlich im Rasiermesser:
@Html.DropDownListFor(model => model.ChosenNumber, Model.PickList)
Warum wird in der Dropdown - Liste nicht standardmäßig die Option " ChosenNumber \(3)
?
Antworten:
6 für die Antwort № 1Die Option ist nicht ausgewählt, weil ChosenNumber
ist ein Feld, keine Eigenschaft. Ändern Sie es zu
public int? ChosenNumber { get; set; }
Außerdem müssen Sie keine 2. Identität erstellen IEnumerable<SelectListItem>
vom ersten. Es kann einfach sein
model.PickList = pickNumberList;