MVC5 - Wie man "selectedValue" in DropDownListFor Html-Helfer
Wie die Frage sagt:
Wie Sie einen Wert für selectedValue festlegen, in DropDownListFor Html-helper?
Versucht, die meisten anderen Lösungen, aber keiner war deshalb Eröffne ich eine neue Frage stellen.
Nichts von diesen geholfen:
@Html.DropDownListFor(m => m.TipPopustaId, new SelectList(Model.TipoviDepozita, "Id", "Naziv", 2), htmlAttributes: new { @class = "form-control" })
//Not working with or without cast
@Html.DropDownListFor(m => m.TipPopustaId, new SelectList(Model.TipoviDepozita, "Id", "Naziv", (ProjectName.Models.TipDepozita)Model.TipoviDepozita.Single(x => x.Id == 2)), htmlAttributes: new { @class = "form-control" })
@Html.DropDownListFor(m => m.TipPopustaId, new SelectList(Model.TipoviDepozita, "Id", "Naziv", (ProjectName.Models.TipDepozita)Model.TipoviDepozita.Where(x => x.Id == 2).FirstOrDefault()), htmlAttributes: new { @class = "form-control" })
@Html.DropDownListFor(m => m.TipPopustaId, new SelectList(Model.TipoviDepozita, "Id", "Naziv", new SelectListItem() { Value="2", Selected=true}), htmlAttributes: new { @class = "form-control" })
Ich würde gerne vermeiden, die manuelle Erstellung von SelectListItems oder ein ViewModel nur für die Liste, wenn möglich.
Die
Ich neue, und immer noch versuchten, über dumme Sachen. Vielen Dank für die Erinnerung.
OK ich check es als Antwort, wenn ich es sehe.
Sind Sie sicher, dass 2 vorhanden ist, als eine Id in Ihrer Liste ?
Erster Kommentar ist die richtige Antwort. Während er mit model binding mit TipPopustaId als verbindlich name "selectedValue" wird ignoriert, egal, wie ich geschrieben hatte, es (falsch oder nicht). Also alle meine versuche sind falsch. Ich brauchte nur zu übergeben korrekten Wert von controller und das ist es.
DropDownListFor()
legt die ausgewählte option basierend auf dem Wert der Immobilie TipPopustaId
(bhow Modell-Bindung funktioniert). Setzen Sie den Wert in der Steuerung, bevor Sie übergeben das Modell an die view und die richtige option ausgewählt werden (die Einstellung der Selected
- Eigenschaft wird ignoriert, wenn die Bindung an ein Modell-Eigenschaft)Ich neue, und immer noch versuchten, über dumme Sachen. Vielen Dank für die Erinnerung.
OK ich check es als Antwort, wenn ich es sehe.
Sind Sie sicher, dass 2 vorhanden ist, als eine Id in Ihrer Liste ?
Erster Kommentar ist die richtige Antwort. Während er mit model binding mit TipPopustaId als verbindlich name "selectedValue" wird ignoriert, egal, wie ich geschrieben hatte, es (falsch oder nicht). Also alle meine versuche sind falsch. Ich brauchte nur zu übergeben korrekten Wert von controller und das ist es.
InformationsquelleAutor Dino | 2017-01-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie die
DropDownListFor()
(oderDropDownList()
) - Methode zum binden an eine model-Eigenschaft, dessen Wert der Eigenschaft setzt die ausgewählte option.Intern die Methoden erzeugen jeweils Ihr eigenes
IEnumerable<SelectListItem>
und legen Sie dieSelected
Eigenschaft basierend auf dem Wert der Eigenschaft, und daher die Einstellung derSelected
Eigenschaft in Ihrem code wird ignoriert. Das einzige mal sein, respektiert wird, wenn Sie nicht binden, um ein Modell-Eigenschaft, zum Beispiel mitHinweis: Ihre Präsentation kann source code, insbesondere die
SelectInternal()
undGetSelectListWithDefaultValue()
Methoden, um zu sehen, wie es im detail funktioniert.Zeigt die ausgewählte option, wenn die Ansicht als erstes gerendert, setzen Sie den Wert der Eigenschaft in der GET-Methode, bevor Sie übergeben das Modell an den view
Ich auch empfehlen, die Ihre view-Modell enthält eine Eigenschaft
IEnumerable<SelectListItem> TipoviDepozita
und generieren Sie dieSelectList
im controllerso wird die Ansicht
Nein, nicht, es sei denn, Sie re-schreiben Sie den code aus dem Quellcode erstellen Sie Ihre eigene Erweiterung Methoden und die
SelectListItem
undSelectList
Klassen (plus ein bisschen mehr). Warum denken Sie, müssen Siedata-*
Attribute? Es wäre viel einfacher, ein wenig javascript.Naja manchmal brauche ich, um anderen Wert der in Optionen wie Preis, Punkte, oder Namen, so dass ich gehen mit wählen Sie anstelle von html.Helfer, aber als ich brauche, manuell data-val -* - Attribute auswählen, die ist, warum ich dachte, es wäre möglich, einige Reiniger, die effektiver Umgang mit allen, die.
Wenn Sie brauchen die Werte in der view, dann müssen Sie mit javascript sowieso (andere weisen, die Sie nicht dort sein sollte). Übergeben Sie eine Sammlung (als Eigenschaft Ihres Modells), die diese Werte an die view zuweisen, um ein javascript-array, dann mit dem change-Ereignis des
<select>
zum abrufen der damit verbundenen zusätzlichen EigenschaftenJa, ich mache die meiste Zeit, außer ich bin nicht zu mögen die Tatsache, dass es wächst und wächst in der Größe, da alle event-handling, inter-Feld-Berechnungen, input-Filterung, jQuery, ajax-Handler und was nicht. Ich habe noch nicht herausgefunden, "namespaces" in java-script zu erreichen, saubere Trennung, denn nun sieht alles wie Hokuspokus und ich hasse es. 🙁
InformationsquelleAutor
Stellen Sie Sicher, dass Ihre Rückkehr Auswahl Wert ein String ist und nicht ein int, wenn Sie erklären in Ihrem Modell.
Beispiel:
InformationsquelleAutor p.sturge
Und in Ihrem Blick:
Statt EnumToList verwenden Sie eine Andere Liste, und wählen Sie Schlüssel und Wert Ihrer Listtype Eigenschaften
InformationsquelleAutor user10155578