Mehrere Formulare in ASP.NET MVC

8

Kontext
Sagen wir, ich habe:
Im Layout Site.Master:

%Vor%

Login Teilansicht sieht wie folgt aus:

%Vor%

Ist es möglich, nur das Login-Widget-Formular und nicht die gesamte Inhaltsseite zu aktualisieren?

    
Arnis Lapsa 05.05.2009, 00:18
quelle

5 Antworten

15

Wenn Sie sich auf einen http-Post beziehen, wird nur ein Post (der auch von javascript initiiert werden kann) durch einen Submit-Button innerhalb des Formulars auf dem Server veröffentlicht.

Wenn Ihre Formulare verschachtelt sind, funktioniert das nicht. Das äußere Formular wird immer auf dem Server veröffentlichen.

Im folgenden HTML-Beispiel werden beim Klicken auf die Schaltfläche zum Übermitteln des ersten Formulars die Werte aus dem zweiten Formular nicht an den Server gesendet. Wenn Sie auf die zweite Schaltfläche klicken, werden die Werte des ersten Formulars ebenfalls nicht veröffentlicht.

%Vor%

Wenn Sie nur einen Formularabschnitt aktualisieren / ändern möchten, dann kann dies nicht ohne Javascript und die Ausführung eines Javascript Posts (aka Ajax ).

    
Chuck Conway 05.05.2009, 07:14
quelle
1

Wenn Sie eine Controller-Methode erstellen, die eine FormCollection akzeptiert und in Ihrer Ansicht zwei Formulare definiert sind, wird die zurückgegebene Formulargruppe entweder mit Werten aus Formular A oder Formular B gefüllt. Sie können die formCollection überprüfen und basierend auf dem Wert Ihre Logik verzweigen darin. Wenn Sie möchten, dass das sehr explizit ist, könnten Sie die gleiche versteckte Variable in beiden Formen mit einem Wert auftreten, der Ihnen helfen würde, Ihre Wahl zu treffen.

Das ist ein Ansatz. Es gibt ein paar Möglichkeiten, damit umzugehen, da bin ich mir sicher.

    
Mark Davis 16.03.2012 16:49
quelle
1

Wenn Sie zwei einfache Formulare haben, können Sie diesen Ansatz verwenden:

Sie erstellen zwei verschiedene Teilansichten.

%Vor%

und

%Vor%

In Ihrer übergeordneten Ansicht

%Vor%

und

%Vor%

Im Controller:

%Vor%

Dies wird tun, was Sie tun möchten.

Hinweis: Die getHtmlContent-Methode generiert nur eine Fehlermeldung, die auf der Seite angezeigt wird. Nichts Besonderes. Ich kann es bei Bedarf teilen.

    
hakan 15.02.2015 10:41
quelle
0

Ihre Frage ist nicht sehr klar.

Aber soweit ich das verstehen kann, ist die Antwort höchstwahrscheinlich ja. Sie können alles, was Sie wollen, abhängig von der Benutzereingabe aktualisieren.

    
Çağdaş Tekin 05.05.2009 01:27
quelle
0
%Vor%

Auf Ansichtsseite

%Vor%     
Skiltz 05.05.2009 00:38
quelle

Tags und Links