2013-03-27 2 views
1

J'utilise Razor WebGrid et mon action de contrôleur est appelée à plusieurs reprises lorsque vous cliquez sur trier par en-tête ou cliquez sur les liens de page. La première fois, elle est appelée une seule fois, mais la prochaine fois elle est appelée à plusieurs reprises. S'il vous plaît, n'importe qui peut aider.Contrôleur Action appelée à plusieurs reprises

[HttpGet] 
     public ActionResult Index(int page = 1, string sort = "GridName", string sortDir = "ASC") 
     { 

      const int pageSize = 5; 
      string successMessage = string.Empty; 
      var message   = string.Empty; 
      int pageIndex1  = page - 1; 


      if (RenderFirstTime == 1) 
      { 
       GridCRUDCollection.UpdateGridModelCollection(null, pageSize, pageIndex1, sort, sortDir); 
       RenderFirstTime = 0; 
       return View(GridCRUDCollection); 
      } 
      else 
      { 
       GridCRUDCollection.UpdateGridModelCollection(null, pageSize, pageIndex1, sort, sortDir); 
       return PartialView("GridDetailsView", GridCRUDCollection); 
      } 
     } 
+1

Cela m'est arrivé parfois à cause de placer un fichier de script dans une vue partielle .. assurez-vous que vous pouvez télécharger un script plusieurs fois .. –

+0

Merci Lewis. J'ai supprimé les fichiers de script de la classe de vue partielle mais restaure la grille qui est une vue partielle l'une après l'autre, en appelant plusieurs fois l'action dans le contrôleur. – VVR147493

Répondre

0

Le code avec un <img src="#" ... > est ce qui l'a fait pour moi. Une fois que j'ai retiré le #, le contrôleur a été appelé une seule fois. La grille peut les générer et les peupler plus tard via Javascript. Une façon de diagnostiquer est d'utiliser LabJS pour empêcher une exécution immédiate.

Questions connexes