Html.DropdownListFür den ausgewählten Wert wird nicht festgelegt
Wie kann ich den ausgewählten Wert aus einem Html.DropDownListFor? Ich habe mit eine online schauen und habe gesehen, dass es erreicht werden kann, wenn der vierte parameter, so wie die unten:
@Html.DropDownListFor(m => m, new SelectList(Model, "Code", "Name", 0), "Please select a country")
Meine Liste wählen Sie dann anzeigen wie diese:
<select id="ShipFromCountries" name="ShipFromCountries">
<option value="">Please select a country</option>
<option value="GB">United Kingdom</option>
<option value="US">United States</option>
...
</select>
Aber für einige Grund, Vereinigtes Königreich ausgewählt bleibt, aber ich möchte "Bitte wählen Sie ein Land" ausgewählt werden.
Jemand weiß, wie kann ich das erreichen?
BEARBEITEN
Ich habe aktualisiert mein code, wie es war, eine leichte änderung in der Funktionalität, aber immer noch zu sein scheinen, dieses problem Auftritt. Dies ist, was meiner Ansicht nach:
@Html.DropDownListFor(n => n.OrderTemplates, new SelectList(Model.OrderTemplates, "OrderTemplateId", "OrderTemplateName", 1), "Please select an order template")
1
ist die Id des option
will ich ausgewählt, ich habe auch versucht mit dem text der option
aber das funktioniert auch nicht.
Irgendwelche Ideen?
InformationsquelleAutor der Frage Ibrar Hussain | 2013-10-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code hat einige konzeptionelle Probleme:
Ersten,
Bei der Verwendung DropDownListFor, der erste parameter ist die Eigenschaft, wo Sie Ihre gewählte Wert wird gespeichert, sobald Sie das Formular abschicken. Also, in Ihrem Fall, sollten Sie eine
SelectedOrderId
als Teil des Modells oder etwas ähnliches, um es auf diese Weise:Zweiten,
Abgesehen von ViewBag, das ist nicht falsch, aber es gibt bessere Möglichkeiten (setzen Sie diese Informationen in das ViewModel statt), es ist ein "kleiner bug" (oder ein unspected Verhalten), wenn Ihr ViewBag-Eigenschaft, wo Sie halten die Auswahlliste ist mit dem gleichen Namen von der Eigenschaft, wo Sie den ausgewählten Wert. Um dies zu vermeiden, verwenden Sie einfach einen anderen Namen bei der Benennung der Eigenschaft-holding der Liste der Elemente.
Einige code, den ich verwenden würde, wenn ich Sie zu vermeiden diese Probleme und schreiben besser MVC-code:
Viewmodel:
Controller:
Aus Ihrer Sicht:
InformationsquelleAutor der Antwort Romias
War für mich, der nicht arbeitet, so arbeiteten auf diese Weise:
Controller:
Anzeigen:
JQuery:
InformationsquelleAutor der Antwort VINICIUS SIN
Wenn Sie an einem Objekt wie diesem:
du sagst, die Quelle (
Model
) und Key ("Code"
) der Text ("Name"
), und der ausgewählte Wert0
. Auf bestem Wege begraben, die Sie nicht haben eine0
Wert auf Ihre Quelle fürCode
- Eigenschaft, also der html-helper wird selektiert das erste element. Nach passieren der realen selectedValue auf dieses Steuerelement.InformationsquelleAutor der Antwort Felipe Oriani
Stellen Sie sicher, dass Sie haben, schneiden Sie den ausgewählten Wert, bevor Sie Sie zuweisen.
//Modell
//Controller
//View
InformationsquelleAutor der Antwort Nalan Madheswaran
Wenn Sie wissen, was in der Ansicht können Sie auch den default-Wert vom Controller, als auch eher dann einstellen bis es in die Ansicht/cshtml-Datei.
Keine Notwendigkeit, legen Sie Standard-Wert aus HTML-Seite.
In der Controller-Datei.
In der .cshtml-Datei.
InformationsquelleAutor der Antwort Smit Patel
Sollten Sie vergessen, die Klasse
Verwenden Sie diese in Ihrem Controller:
Wählen Sie den Wert:
Fügen Sie die Liste der ViewData:
Verwenden Sie diese in Ihrem Anzeigen:
-
Mehr Informationen unter: http://www.asp.net/mvc/overview/older-versions/working-with-the-dropdownlist-box-and-jquery/using-the-dropdownlist-helper-with-aspnet-mvc
InformationsquelleAutor der Antwort g.breeze
Fügen Sie die Controller-Sektion
Fügen Sie den Html-Abschnitt
Eine einfache Methode
InformationsquelleAutor der Antwort ibrahim ozboluk
Für mich Allgemeine Lösung 🙂
InformationsquelleAutor der Antwort dewelloper
Linq to Dropdown mit leeren Element, Element ausgewählt (funktioniert 100%)
(Stark Typisiert sind,ist die Wahrscheinlichkeit für Fehler mindestens) Jedem Modell ändert, werden sich in der Bindung
Controller
Ansicht
Diese Methode für die Bindung von Daten auch möglich
InformationsquelleAutor der Antwort
Ich weiß, das ist nicht wirklich eine Antwort auf die Frage, aber ich war auf der Suche nach einem Weg zum initialisieren der DropDownList aus einer Liste auf das Fliegen in der Ansicht, wenn ich hielt das stolpern über diesen Beitrag.
Mein Fehler war, dass ich versucht, zu erstellen eine Auswahlliste von Wörterbuch wie dieses:
Dann ging ich Graben in den offiziellen msdn-docund festgestellt, dass
DropDownListFor
nicht unbedingt einSelectList
ist, sondern eher eineIEnumerable<SelectListItem>
:In meinem Fall kann ich wohl auch auslassen, die
Model.Locality
ausgewählte Element, da es ein) das einzige Element ist und b) es schon sagt, dass es in derSelectListItem.Selected
Eigenschaft.Nur für den Fall Sie sich Wundern, ist die datasource ist eine AJAX-Seite, die dynamisch geladen mit dem SelectWoo/Select2 Kontrolle.
InformationsquelleAutor der Antwort Damian Vogel
Müssen Sie, eins zu bekommen und setzen unterschiedliche einen. Ausgewählte Wert kann nicht das gleiche Element, das Sie über zu setzen.
Benutze ich Enum-Wörterbuch für meine Liste, das ist, warum es ist "key", "Wert" paar.
InformationsquelleAutor der Antwort MEO