Wie kann ich in einem modalen Bootstrap von der Serverseite validieren?

10

Ich habe einen Account-Controller, und ich möchte, wenn ich einen falschen Benutzernamen / Passwort auf Modal Bootstrap eingegeben hat Es wird eine Meldung "Ungültiger Login-Versuch." von ActionResult Login () zu modal.

meine _loginPartialView:

%Vor%

%Vor%

mein Controller:

%Vor%     
Khiem Nguyen 24.04.2015, 07:52
quelle

3 Antworten

0

Ich habe einen Kommentar dazu hinzugefügt, aber es könnte als Ihre Lösung helfen. Es klingt wie ungültige Eingaben bei der Formularübergabe zu einer Weiterleitung mit dem modalen Inhalt auf einer leeren Seite führt? Da das Modal eine Teilansicht ist, versuchen Sie, Ihre Skripts an den Anfang der _loginPartialView zu verschieben. Dasselbe gilt für alle Bundles, die Sie auf der Layoutseite verwenden.

%Vor%     
sukotto1 27.04.2015 19:49
quelle
0
  • Erstens, da Sie @Ajax-Helfer verwenden, sollten Sie Microsoft jQuery Unobtrusive Ajax installieren und darauf verweisen (Sie finden hier einen älteren, aber dennoch relevanten Leitfaden: Ссылка ).

  • Zweitens sollten Sie die clientseitige Validierung aktivieren (siehe in der Anleitung)

  • Drittens müssen Sie als UpdateTargetId ein vorhandenes DOM-Element angeben, das aktualisiert werden soll (ich sehe nicht das "loginModal" im Codebeispiel). Ich glaube, dass diese ID innerhalb des modalen HTML-Codes sein sollte, andernfalls wird es das modale HTML neu erstellen und seinen Status zurücksetzen. (Ich würde die modale Definition in der übergeordneten Ansicht verschieben und die partielle nur mit der Formulardefinition lassen).

Ionut Ungureanu 12.01.2017 20:08
quelle
0

Allgemein:

  1. Ändern Sie Ihren Controller, um JSON-Ergebnisse des Anmeldeversuchs zurückzugeben
  2. Übermitteln Sie die Schaltfläche "Senden" als normale Schaltfläche, damit sie nicht wirklich gesendet wird.
  3. Verwenden Sie JQuery zum Erstellen eines JSON-Objekts
  4. Verwenden Sie JQuery, um das JSON-Objekt an Ihren Controller zu senden
  5. Überprüfen Sie in Ihrem AJAX die Rückgabe vom Controller und handeln Sie entsprechend
  6. Fügen Sie ein kleines div für Benutzerfeedback hinzu
  7. entfernen ModelState.AddModelError("", "Invalid login attempt.");
  8. Versuche in deinem Controller deine Logik zu fangen, so dass sie JSON immer an den Ajax des Modales zurückgibt. Behandeln Sie den Fehler dort (siehe unten)

(Sie können natürlich jede beliebige Wortwahl wie 'Erfolg' oder was auch immer verwenden.)

Ihr Rasierer könnte etwa so aussehen:

%Vor%

Ihr Controller könnte ein benutzerdefiniertes Viewmodel wie:

zurückgeben %Vor%

Ihr Controller würde die Anmeldung wie gewohnt überprüfen, aber dann

zurückgeben %Vor%     
Beau D'Amore 02.10.2017 16:53
quelle