2011-07-14 4 views
2

Existe-t-il un moyen de soumettre un formulaire mais de le laisser sur la page?MVC3 Ajax appel au contrôleur

Maintenant j'affiche une table d'objets, mais chaque ligne a une valeur modifiable avec chaque ligne dans son propre formulaire Ajax mais quand je clique sur le bouton de mise à jour, ça passe à la méthode mais la page entière change.

Répondre

7

Y a-t-il un moyen de soumettre un formulaire mais de le laisser sur la page?

Bien sûr, vous pouvez utiliser AJAX:

@using (Html.BeginForm()) 
{ 
    ... some form input fields 

    <input type="submit" value="Go" /> 
} 

puis discrètement AJAXify cette forme dans un fichier séparé:

$(function() { 
    $('form').submit(function() { 
     $.ajax({ 
      url: this.action, 
      type: this.method, 
      data: $(this).serialize(), 
      success: function(result) { 
       // TODO: handle the results of the AJAX call 
      } 
     }); 
     return false; 
    }); 
}); 

et pour éviter d'écrire tout ce code javascript vous pouvez prendre un regard sur l'excellent jquery.form plugin:

$(function() { 
    $('form').ajaxForm(function(result) { 
     // TODO: handle the results of the AJAX call 
    }); 
}); 

Une autre alternative est d'utiliser l'assistant Ajax.BeginForm ASP.NET MVC 3:

@using (Ajax.BeginForm(new AjaxOptions { OnSuccess = "success" })) 
{ 
    ... some form input fields 

    <input type="submit" value="Go" /> 
} 

et un gestionnaire de succès en javascript:

function success(result) { 
    // TODO: handle the results of the AJAX call 
} 

vous devez également inclure le script jquery.unobtrusive-ajax.js en plus de jquery à votre page si vous souhaitez utiliser les aides Ajax.*.

+0

En fait, juste besoin d'ajouter le script jquery.unobtrusive-ajax.js, mais merci beaucoup pour votre aide. J'ai tiré mes cheveux (ou ce qu'il en reste). – MCBrandenburg

Questions connexes