2012-03-29 4 views
0

Ich habe ein fancybox Popup mit einem Formular darin. Wenn das Formular gepostet wird, funktioniert alles gut, aber nachdem es gepostet wurde, wird es auf die Ansicht umgeleitet und zeigt es auf einer ganzen Seite an.ASP.NET MVC Wie schließe ich fancybox auf Formularpost

Was ich will, ist für das Popup für gepostet werden und die Phantasie-Box geschlossen werden.

Hier ist mein Code

Hauptseite Dieses Popup feinen

<%: Html.ActionLink("Add Person Box", "AddTest", Nothing, New With {.class = "fbox"})%> 

    <script type="text/javascript"> 
     $(document).ready(function() { 

      $(".fbox").fancybox(); 

     }); 
    </script> 

Popup-Seite

<% Using Html.BeginForm() %> 
    <input type="submit" value="Save Person" /> 

<% End Using %> 

Auch dieses trägt fein öffnet aber leitet sich im Vollbildmodus. Ich möchte nur, dass das Formular gepostet wird und die Geschenkbox geschlossen wird.

Antwort

0

versuchen das Attribut onsubmit="javascript:parent.jQuery.fancybox.close();"" zu Ihrem form Tag

+0

habe ich versucht, dass aber das Formular nicht und die fancybox weder –

+0

noch andere Ideen in der Nähe? –

+0

sehe meine bearbeitete Antwort – JFK

0

Hinzufügen der Umleitung zu vermeiden, müssen Sie es eine Web-Methode zu machen.

0

Verwenden Sie jQuery ajax, um den Inhalt des Popup-Formulars zu veröffentlichen. Sobald Sie die Antwort von Ihrer Serveraktionsmethode erhalten haben, schließen Sie sie mit Javascript.

0

Ich würde das JQuery Form-Plugin verwenden. Entführe das Formular und mache eine Ajax-Anfrage. Nachdem die Anfrage abgeschlossen ist, können Sie die Geschenkbox einfach von der Callback-Funktion schließen (solange keine Fehler aufgetreten sind).

http://jquery.malsup.com/form/

// bind to the form's submit event 
$('#myForm2').submit(function() { 
    // inside event callbacks 'this' is the DOM element so we first 
    // wrap it in a jQuery object and then invoke ajaxSubmit 
    $(this).ajaxSubmit({ 
     success : function (result) { $.fancybox.close() } 
    }); 

    // !!! Important !!! 
    // always return false to prevent standard browser submit and page navigation 
    return false; 
});