2009-05-14 15 views
3

Ich habe ein Ajax-Formular in asp.net Mvc, die als dies so einfach ist:Einreichen AjaxForm mit jQuery in ASP.NET MVC

 

    <% using (this.Ajax.BeginForm("LatestBlogPosts", "Blog", null, new AjaxOptions { UpdateTargetId = "blogPostPanel" }, new { id = "BlogPostForm" })) { %> 
    <div class="panel" id="blogPostPanel"> 
     <img src="/images/ajax-loader.gif" alt="ajax-loader" /> 
    </div> 
    <% } %> 
 

Ich mag das Formular aufrufen, wenn das Dokument geladen wird. Dies sollte angeblich die Aktion des Controllers aufrufen und ein Ergebnis zurückgeben, das durch den Platzhalter DIV ersetzt werden sollte. Wenn ich dem Formular eine SUBMIT-Schaltfläche hinzufüge, funktioniert es einwandfrei, aber wenn ich das Senden über jQuery aufruft, wird die gesamte Seite aktualisiert, und der vom Server zurückgegebene Inhalt wird auf der neu angezeigten Seite angezeigt. Hier ist mein jQuery-Code:

 

    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#BlogPostForm").submit(); 
     }); 
    </script> 
 

Wie auch immer, dies zu tun?

+0

gleiche passiert, wenn ich die Form von Javascript übermittle nur: Funktion SubmitForm() { document.forms [ "BlogPostForm"] vor();. } die ganze Seite aktualisiert wird und der Inhalt auf einer neuen Seite angezeigt wird. –

Antwort

2

ich denke, es kann funktionieren, wenn Sie die Trigger-Methode verwenden, um das Ereignis vorlegen zu generieren, aber ich denke, es gibt eine weniger komplizierte Art und Weise dies mit jQuery zu tun.

<div class="panel" id="blogPostPanel"> 
    <img src="/images/ajax-loader.gif" alt="ajax-loader" /> 
</div> 

<script type="text/javascript"> 
    $(function() { 
     $('#blogPostPanel').load('<%= Url.Action("LatestBlogPosts", "Blog") %>'); 
    }); 
</script> 
+0

Super! Arbeitete wie ein Charme ... Danke Mann! –

Verwandte Themen