Schaltflächenereignis in ASP.NET MVC

8

Ich habe eine Ansichtsseite in MVC erstellt wie

%Vor%

Hier möchte ich Buttonclick Event schreiben ... Wie und wo soll ich schreiben?

    
Domnic 18.01.2011, 10:23
quelle

2 Antworten

12

Ihre Eingabe ist vom Typ button - sie machen nichts ohne zusätzlichen clientseitigen Code.

Wenn Sie das Ereignis auf dem Server ähnlich wie in ASP.NET behandeln möchten, sollten Sie es in eine Übergabeschaltfläche umwandeln. Wenn Ihr Controller "Account" heißt und Ihre Aktion "Registrieren" heißt, würde Ihr aktueller Code etwas wie folgt aussehen:

%Vor%

Sie möchten damit beginnen, ein Modell an die Ansicht zu übergeben:

%Vor%

Ihre aktuelle Ansicht verwendet lose eingegebene Eingaben. Da Sie ein Modell übergeben, können Sie stark typisierte Ansichten verwenden. Ihr Modell sollte etwa so aussehen:

%Vor%

Um stark typisierte Ansichten zu verwenden, ändern Sie Ihre Ansicht wie folgt:

%Vor%

Was wir getan haben, ist der Ansicht, dass Sie Etiketten und Textfelder für Ihren RegisterModel-Typ erstellen sollen. Dadurch können die Modellwerte automatisch zugeordnet werden, wenn Sie das Formular an den Controller senden.

Akzeptieren Sie den Post, wir müssen dem Controller eine neue Aktion mit dem gleichen Namen hinzufügen, aber einen Parameter vom Typ RegisterModel akzeptieren:

%Vor%

Als letzte Möglichkeit, um sicherzugehen, fügen Sie den Controller-Aktionen die Attribute [HttpGet] und [HttpPost] hinzu, um die akzeptierten Methoden zu steuern:

%Vor%

und

%Vor%

Ich schlage vor, Sie lesen MVC in Ссылка und lesen das NerdDinner Tutorial-Kapitel in Professional MVC (kostenlos online im PDF-Format) Format).

    
Michael Shimmins 18.01.2011, 10:36
quelle
1

Beitritt zu der Frage, will es konkreter machen

Ich habe ein Formular, das Formular hat bereits einen Absenden-Button, aber ich muss eine zusätzliche Aktion an einen anderen Button binden. Ja, ich weiß, dass MVC keine Ereignisse unterstützt, weil HTML-Formulare sie nicht unterstützen.

Also ist die Lösung, zu der ich gekommen bin, darin, verborgene Eingaben innerhalb des Formulars zu erzeugen und ein "onclick" -Ereignis (jquery 'live' Methode) an jeden zu binden ... oh, was zum Teufel? Hier ist der Code:

html:

%Vor%

js:

%Vor%

aber vielleicht gibt es elegantere Lösung?

    
Arthur 10.09.2011 12:36
quelle

Tags und Links