2015-02-27 2 views
2

J'ai le code suivant dans mon affichage,
Il est pour la recherche dans un site, un utilisateur peut soumettre le formulaire suivant plusieurs fois. Je veux rejeter les anciens résultats ajax et montrer le dernier résultat ajax uniquement.
Dans un formulaire Ajax non mvc, je créais un tableau en tant que compteur ajax et je comparais les réponses du serveur avec celui-ci pour empêcher la mise à jour de html.
Je veux savoir comment je peux empêcher Ajax.BeginForm de mettre à jour le code HTML sous certaines conditions.Empêcher la mise à jour html avec certaines conditions dans MVC Ajax.BeginForm?

Répondre

2

À titre d'exemple, je vais démontrer avec un appel OnSuccess, vous pouvez le faire pour chaque événement que vous souhaitez gérer.

Dans votre AjaxOptions, supprimez ceci pour empêcher le remplacement;

InsertionMode = InsertionMode.Replace, 
UpdateTargetId = "SearchContents", 

En vous SearchLoadContentsOnSuccess méthode JavaScript, sans voir la méthode que je suis guesing ce sera quelque chose comme ceci:

function SearchLoadContentsOnSuccess() 
{ 
    // Do something 
} 

Modifier à ceci:

function SearchLoadContentsOnSuccess(e) 
{ 
    // Do something 
} 

maintenant le paramètre e contiendra les données qui sont renvoyées à partir de votre appel ajax.

Dans votre méthode mise à jour, je vérifie simplement la réponse et agis en conséquence. À titre d'exemple, si vous la réponse contient une propriété de valeur et les résultats:

function SearchLoadContentsOnSuccess(e) 
{ 
    // Do something 
    $(e.value == 1) 
     { 
      $('#SearchContents').html(e.results); 
     } 
} 

vous suffit de changer le javascript dans la méthode ci-dessus pour la suite vos besoins.