Ich versuche, eine einfache Erweiterungsmethode zu schreiben, die es mir ermöglicht, ein Element in einer MVC SelectList nach Text und nicht nach Wert auszuwählen.MVC-Erweiterungsmethode
Dies ist, was ich gefunden habe, aber obwohl das Element wie beim Debuggen ausgewählt eingestellt ist, hat die zurückgegebene SelectList alle Items mit selected = false.
Irgendwelche Ideen?
public static SelectList SelectByText(this SelectList list, string TextValue)
{
foreach (var item in list)
{
if (item.Text == TextValue)
{
item.Selected = true;
}
}
return list;
}
Können Sie zeigen, wie Sie beweisen, dass alle ausgewählten Eigenschaften immer noch falsch sind? Liegt es an dem, was Sie in der UI-Ausgabe gesehen haben, oder durch die Untersuchung der Objekte direkt im Debugger? Es ist schwer zu sehen, wie Sie das Ergebnis erhalten, das Sie beschreiben. – AnthonyWJones
Innerhalb des if (item.Text == TextValue) {} hat das ausgewählte Attribut des Elements den Wert true, wenn die Werte übereinstimmen, aber in der Gesamtsammlung im Debugger wird die Eigenschaft des Elements auf false gesetzt. Ich kann nicht verstehen, was hier vor sich geht ?? –