2009-05-14 11 views
3

J'ai un formulaire ajax en asp.net mvc qui est aussi simple que cela:Envoi AjaxForm avec jQuery dans 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> 
    <% } %> 
 

Je veux invoquer le formulaire soumettre lorsque le document est chargé. Cela devrait soi-disant, appeler l'action du contrôleur et retourner un résultat qui devrait être remplacé par l'espace réservé DIV. Si j'ajoute un bouton SUBMIT au formulaire, cela fonctionne parfaitement, mais lorsque j'appelle submit via jQuery, toute la page est rafraîchie et le contenu renvoyé par le serveur est affiché dans la page nouvellement affichée. Voici mon code jQuery:

 

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

Quoi qu'il en soit?

+0

même chose se produit si je soumets le formulaire en javascript seulement: fonction SubmitForm() {document.forms [ "BlogPostForm"] submit();. } la page entière est actualisée et le contenu est affiché sur une nouvelle page. –

Répondre

2

Je pense que cela peut fonctionner si vous utilisez la méthode trigger pour générer l'événement submit, mais je pense qu'il existe une façon moins compliquée de le faire en utilisant jQuery.

<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

Génial! Travaillé comme un charme ... Merci l'homme! –