Ich habe nicht die Erfahrung, mit Helfern zu arbeiten, also bin ich bei der Verwendung eines Codes zur Hand.
Meine Anforderung ist einfach und alles, was ich brauche, ist Opt-Group-Funktionalität in DropDownListFor
Extension-Methode. Bei der Suche bin ich auf diese Antwort gestoßen und habe diese in einer Datei namens MyExtensionClass.cs
Aber ich weiß nicht, wie ich das verwenden soll oder rufe die in dieser Definition definierte Erweiterungsmethode auf. Bitte sag mir, wie kann ich das mit meiner Liste benutzen?
Im Folgenden ist der Controller-Code für eine Auswahlliste, für die ich die Erweiterungsmethoden verwenden möchte.
%Vor%Und das ist mein Ansichtscode
%Vor%Bitte helfen Sie mir, dies auf Erweiterungsmethode mit optgroup zu aktualisieren.
Wir benutzen Serge Zabs Helfer für optgroup dropdowns. Hier ist ein Beispiel:
Das Ansichtsmodell:
%Vor%Der Controller:
%Vor%Die Ansicht
%Vor%Beachten Sie, dass Sie keine reguläre SelectList verwenden können. Sie müssen eine Sammlung seiner GroupedSelectListItem-Klasse verwenden. Außerdem verwendet unsere Lösung nicht viewbag. Die Dropdown-Liste ist stark in das Viewmodel eingetippt.
Aktualisieren
Damit der HTML-Helper in Ihrer Ansicht funktioniert, muss er in der Ansicht gefunden werden können. Sie können entweder eine @ using-Direktive am Anfang der Ansicht mit Ihrem MyExtensionClass.cs-Namespace hinzufügen oder den Namespace der view-spezifischen web.config wie folgt hinzufügen:
%Vor%Dies wurde zu ASP.NET MVC mit Version 5.2 hinzugefügt!
Mit der Eigenschaft Group
in SelectListItem können Sie für jedes Element eine Gruppe angeben
Html.DropDownList()
und DropDownListFor()
generieren jetzt optgroup
Elemente basierend auf den Gruppen, die in der Liste der Elemente enthalten sind.
Tags und Links asp.net-mvc-3 html-helper