9 Stimmen

ASP.net MVC DropDownList Vorausgewähltes Element ignoriert

Ich habe ein ähnliches Problem wie in der Frage beschrieben "Html.DropDownList in ASP.NET MVC RC (Refresh) wählt Element nicht vor"

Ich bin mit ASP.net MVC 1.0 und müssen einen Javascript-Aufruf zugeordnet, wenn die DropDownList geändert wird.

<%=Html.DropDownList("SelectList", 
                    (SelectList)ViewData["SelectList"], 
                     new { onchange="javascript:selected_droplist();" } )%>

Das ist alles gut, außer er ignoriert mein vorausgewähltes Element

Wenn ich die zusätzlichen Funktionen entferne:

<%=Html.DropDownList("SelectList")%>

Er ist glücklich und wird meinen vorausgewählten Artikel verwenden. ABER ich verstehe die Javascript-Aktion nicht!

Also, wie füge ich das Javascript zum onchange-Ereignis?

20voto

Andrew Harry Punkte 13617

Die Antwort gefunden

Wenn der dem Steuerelement gegebene Name (der erste Parameter ist in diesem Fall "SelectList") mit einem der Schlüssel im ViewData-Dictionary übereinstimmt, wird das vorausgewählte Element in der SelectList ignoriert

Durch einfaches Umbenennen der DropDownList funktioniert sie korrekt und bindet sich an das vorausgewählte Element

0voto

Jack Marchetti Punkte 15256

Leider bin ich nicht bei der Arbeit, so dass ich den aktuellen Code nicht bekommen kann. Allerdings erreichte ich dies durch das Schreiben der Javascript-Ereignis als html-Attribut in den Controller, dann übergeben Sie es entlang in der ViewData.

Wenn Sie den Code schreiben:

<%=Html.DropDownList("SelectList", (SelectList)ViewData["SelectList"], [htmlAttribute])

Grundsätzlich würden Sie im Controller das html-Attribut schreiben und es in der Dropdownlisten-Methode zuweisen.

0voto

Tom Schreck Punkte 4949

Ich weiß, dies ist ein alter Beitrag, aber ich fand einen Link, der eine Problemumgehung zeigt, wo Sie den gleichen Namen für die Dropdown-Liste halten können und Datenbindung für das Modell auf dem Formular Beitrag halten:

http://publicityson.blogspot.com/2010/07/aspnet-mvc-htmldropdownlist-not-showing.html

Ich denke, dies ist ein großer Fehler und bin überrascht, dass er noch nicht behoben wurde. Wie auch immer, ich hoffe, das hilft.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X