2017-01-02 3 views
0

Gibt es eine Möglichkeit, den zurückgegebenen Wert von einer Aktion mithilfe von .submit Ereignis-Listener in jQuery abrufen? Ich habe ein Problem, das ist, wenn die Aktion abgeschlossen ist, gibt es eine JSON-Datei zurück und mein Browser navigiert zu einer leeren Seite und zeigt nur die zurückgegebene JSON an. Ich möchte das nicht passieren, ich möchte in der Lage sein, das JSON-Ergebnis zu lesen und basierend darauf zu entscheiden, was zu tun ist.Submit auf einem ASP.NET MVC-Formular?

Hier ist meine POC: Ausblick:

@using (Html.BeginForm("SubmitTest", "DMS", FormMethod.Post, htmlAttributes: new { id = "formId" })) 
     { 
      <input type="submit" value="Sumbit" /> 
     }  

Controller:

public JsonResult SubmitTest() 
     { 
      return Json("Done"); 
     } 

Script:

$(document).ready(function() { 
     $("formId").submit(function() { 
      alert("Submitted"); 
     }); 
    }); 

Antwort

0

eine AJAX Form Verwenden Sie anstelle der HTML Form, auf diese Weise können Sie Überprüfen Sie die Antwort, nachdem es eingereicht wurde und was auch immer Sie tun ed mit dem OnSuccess Handler.

Ausführliche Informationen finden Sie in diesem article

1

Sie event.preventDefault oder return false hinzufügen können das Standardereignis zu verhindern. damit wird nicht zu einer leeren Seite navigiert.

$(document).ready(function() { 
     $("formId").submit(function() { 
      alert("Submitted"); 
      return false; 
     }); 
    }); 

EDIT: , wenn Sie die Antwort, die Sie eine Ajax-Anfrage machen müssen erhalten und die Formulardaten aus den Bereichen zu erhalten. Sie können die Antwort nicht mit submit Funktion erhalten.

$(document).ready(function() { 
     $("formId").submit(function() { 
      /// make an AJAX request 
      $.post(
$(this).attr('action'), //// action url 
$(this).serialize(), //// serialize form fields 
function(json) { 
     alert(json);/// json response 
    }, 'json'); 

      return false; /// prevent navigation 
     }); 
    }); 
+0

Wird das Senden des Formulars an den Server nicht verhindert? –

+0

@ Tha'erAl-Ajlouni nein wird es nicht. Es sendet das Formular, aber verhindert Navigation – esiprogrammer

+0

Ok, aber wie kann ich den eingehenden JSON lesen? – user3159792

Verwandte Themen