ASP.NET MVC DropDownList: Immer den Ausgewählten Text (nicht den Wert)

Once upon a time, hatte ich eine DropDownList mit Optionen erstellt mit diesem code:

<%= Html.DropDownList("SomeName", someSelectList)%>

erzeugte HTML wie diese:

<select id="SomeName" name="SomeName">
<option>ABC</option>
<option>DEF</option>
<option>GHI</option>
<option>JKL</option>
</select>

Formular würde immer wieder eine der oben genannten Optionen zu meiner Klasse, die public-member - "Irgendetwas" über ModelBinding. Meine interne Validierung code würde dann wählen Sie den korrekten numerischen Wert aus einem internen Wörterbuch. Das Leben war gut.

Dann wurde ich gefragt, zeigen die numerischen Werte, wie Sie waren ausgewählt, die über Javascript/JQuery in einer separaten Textbox. So, jetzt habe ich die folgenden Optionen:

<select id="SomeName" name="SomeName">
<option value="50">ABC</option>
<option value="10">DEF</option>
<option value="25">GHI</option>
<option value="10">JKL</option>
</select>

und den folgenden JQuery-code:

$(document).ready(function() {
    $('#SomeName').change(function() {
        $("input#someNumber").val($('#SomeName').val());
    });
});

Benutzer wählt den String und zeigt den numerischen Wert in das Feld ein. Toll.

Das problem ist jetzt, dass wenn das Formular abgeschickt wird, werden die Modell-Bindung wird der numerische Wert (zB. 50) eher als der String (zB. ABC)

Wie kann ich über-fahren Sie dieses Verhalten und bekommen die ausgewählte String wieder?

Warum die Mühe? Sie waren bereits auf der Suche, die Anzahl auf der Grundlage der Zeichenfolge vor. Jetzt bist du einfach die Nummer. Axt des code, hat der lookup-und glücklich sein mit etwas weniger code. ...oder ist es mehr?
Die Zahl ist nicht eindeutig. Einige Text-Optionen haben die gleiche Nummer. Das Modell (Klasse) , mit dem ich arbeite muss sowohl der Text und die Anzahl. Und beide müssen für den Benutzer sichtbar sein, wie Sie arbeiten. Ich hatte vorher die Anzahl zeigen sich nach einer post-zurück, um zu überprüfen, aber meinen Nutzern gefiel dies nicht und wollen, dass alles Javascripty slick.

InformationsquelleAutor Pretzel | 2010-10-27

Schreibe einen Kommentar