2017-06-22 3 views
0

Ich lerne immer noch MVC Zeigt ein Raster von Mitarbeitern mit Bearbeiten, Details, Löschen von Links.jquery dialog geöffnet nach dem postback in MVC

Auf Bearbeiten klicken: Ich öffne einen jQuery Dialog mit Code unter und Aufruf einer MVC-Aktion. Aktion URL ist in URL-Parameter in Ladefunktion.

$(".edit").on("click", function (e) { 
      alert("editing"); 
      var url = $(this).attr('href'); 
      $("#dialog-edit").dialog({ 
       title: 'Edit Details', 
       autoOpen: false, 
       resizable: false, 
       height: 455, 
       width: 550, 
       show: { effect: 'drop', direction: "up" }, 
       modal: true, 
       draggable: true, 
       open: function (event, ui) { 
        $(this).load(url); 

       }, 
       close: function (event, ui) { 
        $(this).dialog('close'); 
       } 
      }); 

      $("#dialog-edit").dialog('open'); 
      return false; 
     }); 

Ich habe einige serverseitige Validierungen. Klicken Sie auf die Schaltfläche Aktualisieren, nachdem Sie die Mitarbeiterdetails geändert haben (im modalen Dialog mit dem Link Bearbeiten oben). Egal, ob die serverseitige Validierung fehlschlägt oder fehlschlägt, der modale Dialog wird geschlossen, was ich weiß, ist in einem Postback natürlich.

Ich möchte wissen, was ist der richtige Weg zu wieder öffnen, dass jquery modal Dialog, wenn die serverseitige Validierung mit Fehlermeldung fehlschlägt, die den Grund für den Benutzer zeigt.

Antwort

0

eine Flagge in der Antwort Verwenden Sie wissen, ob Sie den Dialog öffnen müssen und die Fehler angezeigt werden, aber: dies keine gute Praxis ist

es könnte besser sein, wenn Sie einen GET mit jquery tun und dann Sie können die Antwort verarbeiten und den Dialog schließen, wenn keine Fehler vorliegen.

0

Lassen Sie mich wissen, wenn unten Lösung einige Frage hat:

ich meine jQuery Dialog Code modifiziert, um einen Ajax-Aufruf, um die Details zu aktualisieren, anstatt die Form einreichen.

Auch modifizierte Aktion Methode zurückzukehren JsonResult statt Action

$(".edit").on("click", function (e) { 
     alert("editing"); 
     var url = $(this).attr('href'); 
     $("#dialog-edit").dialog({ 
      title: 'Edit Details', 
      autoOpen: false, 
      resizable: false, 
      height: 455, 
      width: 550, 
      show: { effect: 'drop', direction: "up" }, 
      modal: true, 
      draggable: true, 
      buttons: { 
       "Save" : function(){ 
        $.post("Student/Edit", $("form").serialize(), function (data) { 
         if (data) { 
          alert("data saved"); 
          $("#dialog-edit").dialog('close'); 
          window.location.href = "Student/Index"; 
         } 
         else { 
          alert("not saved"); 
         } 

        }); 
       } 
      }, 
      open: function (event, ui) { 
       $(this).load(url); 

      }, 
      close: function (event, ui) { 
       $(this).dialog('close'); 
      } 
     }); 

     $("#dialog-edit").dialog('open'); 
     return false; 
    }); 
Verwandte Themen