/ / SelectList wählt nicht den richtigen Wert aus - c #, .net, asp.net-mvc

SelectList wählt den richtigen Wert nicht aus - c #, .net, asp.net-mvc

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 № 1

Die 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;