Client-Formularvalidierung funktioniert nicht mit dem modalen Dialog in MVC

7

Ich ändere ein create-Formular, um ein modales Dialogfeld zu werden und jquery Unauffällige Validierung funktioniert nicht mehr und weiß nicht, wie es zu beheben ist.

Index.cshtml hat einen Link, um einen modalen Dialog auszulösen.

%Vor%

Create.cshtml ist eine Teilansicht.

%Vor%

Auf dem Controller gibt es eine Aktionsmethode, die eine Teilansicht für das Erstellungsformular zurückgibt.

%Vor%

Ansicht modal

%Vor%

bevor ich es zu einem modalen Dialog änderte .. alles funktionierte, aber jetzt weiß ich nicht, wie ich es beheben kann. Wie kann ich Validierung mit Dialog arbeiten? Offensichtlich möchte ich Validierungsregeln auf Client-Skript nicht umschreiben .. Ich möchte es vom Ansichtsmodell arbeiten .. danke.

    
lawphotog 27.05.2014, 12:45
quelle

4 Antworten

36

Da das Formular beim Laden der Seite nicht zur Seite hinzugefügt wird, wird es von der unauffälligen Validierung nicht erfasst. Es gibt zwei Möglichkeiten, dies zu beheben.

  1. Fügen Sie das Formular während des ersten Ladevorgangs auf der Seite ein. Dadurch wird das Formular erkannt und die Validierung wird durchgeführt. Sie können die Teilansicht in ein verstecktes div werfen. Dann zeigt Ihr JavaScript nur den modalen Dialog an.
  2. Registrieren Sie das Formular manuell mit der unauffälligen Validierung, nachdem Sie es der Seite hinzugefügt haben. So etwas wie $.validator.unobtrusive.parse("#id-of-the-form");
cadrell0 27.05.2014, 12:54
quelle
5

Wenn Sie den Dialog laden dynamisch registrieren die unauffällige Validierung in dem Änderungsereignis der enthaltenden Elements:

%Vor%     
ComeIn 15.09.2016 03:22
quelle
1

In Teilansicht der Create-Seite - & gt; modal-header, model-body, modal-footer und JavaScript-Code in <script>your code </script> - setze <script>your code</script> nicht in @section Scripts{} und es wird funktionieren.

    
Sanjay 12.07.2016 20:00
quelle
0

Fügen Sie einfach die folgenden Skripts in Ihre Formularansicht ein:

%Vor%     
Sam 09.03.2018 10:12
quelle