Laden...

ASP MVC Button, Checkbox, DropDownList Click-Events

Erstellt von ZeroQool vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.914 Views
Z
ZeroQool Themenstarter:in
322 Beiträge seit 2006
vor 12 Jahren
ASP MVC Button, Checkbox, DropDownList Click-Events

Hallo,

seit kurzem beschäftige ich mich mit MVC, komme aber eigentlich aus der ASP .NET Welt. Das MVC Prinzip ist mir soweit klar geworden, allerdings habe ich noch ein paar Anlaufprobleme "simple" Sachen zu lösen.

zB habe ich eine Checkbox und sobald man diese anklickt möchte das eine Action ausgelöst wird. Bei ASP. NET war das relativ einfach über ein Postback und Checked Event lösbar, aber bei MVC stehe ich gerade etwas ratlos. Muss ich über ein JS oder so immer ein SUBMIT FORM auslösen?

Das Gleiche ebenfalls bei der Auswahl eines Items aus einer DropDownList..

Was ist wenn ich mehrere Buttons auf einer Form habe? Muss ich um jeden Button ein FORM machen oder wie löst man das "elegant"?

Vielen Dank im Voraus!!!!

16.842 Beiträge seit 2008
vor 12 Jahren

Hallo,

also zu aller erst ist MVC auch ASP 😉 Aber Du hast mehr Macht über den Workflow der HTML Generierung.

Den Gedanken der Postback-Variante; den musst Du komplett ablegen. Im Gegensatz zu WebForms ist MVC nicht Event-basiert, sondern Request-basiert.
Die ganzen "emulierten" Events aus WebForms gibt es im eigentlichen HTML-Standard nicht. Eine Checkbox löst bei Klick eigentlich keinen Event aus.

Wenn Du auf einen Change auf ein Element reagieren willst, dann musst Du Events definieren; am besten mit jQuery.

$('form#myFormID select#mySelectID').live('change', function () {
   $('form#myFormID').submit();
});

Natürlich geht es auch mit Plain-Javascript. Aber das find ich persönlich unschön.

Je nachdem, was Du mit dem Change anfangen willst, ist das auch alles über Ajax lösbar, sodass die Seite bei einem Change nicht komplett aktualisiert, sondern nur das Element, das aktualisiert werden soll.

Zu den Buttons: Du kannst gibst allen Buttons das gleiche Name-Attribut. Anhand der Value kannst Du dann auf der Server-seite erkennen, welcher Button das ist. Die Frage ist aber hier: wozu hat eine Form mehr als ein Button?
Das ist in meinen Augen eine ziemlich schlechte Angewohnheit, die man aus der WebForms Ecke eben kennt; aber eigentlich nicht so gedacht ist.

Daher gibt es seit HTML 4.1 das Type-Attribut des Buttons. Standardmäßig ist dieses "submit"; wenn man aber den Button haben will, aber die Form gar nicht abgesendet werden soll, so definiert man diesen als type="button"