2010-10-26 2 views
0

J'utilise asp.net MVC2. Je suis confronté à un problème de gestion d'état de contenu javascript. J'ai une carte d'image dans laquelle cliquez sur différentes parties de l'image, je montre la même page (rediriger avec paramètres) avec un paramètre comme: Secure/BodyWork? View = 7 et sur la base de la valeur dans la vue des paramètres je montre divers contenus sur la page. dans ce contenu j'ai quelques cases à cocher que je fais vérifier et montrer sur le côté gauche dans un div (cochée). le problème est quand je clique sur une autre partie de l'image (de la carte d'image) il me rediect à la même page avec différent "vue =?" valeur mais je loos état de mes divs actuels (qui contient le nom de case à cocher cochée de la page précédente).Gestion d'état de conav javascript dans MVC

ma ligne de inherites est comme ceci:

Inherits="System.Web.Mvc.ViewPage<List<WBAC.Models.BodyWorkModel>>" 
contrôleur

contient:

public ActionResult BodyWork(string view) 
    { 
SecureModelService service = new SecureModelService(); 
     return View(service.ListBodyWork(view)); 
    } 

     [HttpPost] 
    public ActionResult BodyWork(BodyWorkModel model1) 
    { 
     //some code 
    } 

j'ai essayé avec champ caché donc dans lequel je plaçais les noms de la case de la page en cours, mais bien sûr ceux qui perd de sa valeur quand je clique sur l'image en raison de la redirection de la page vers la page actuelle.

J'ai aussi essayé d'utiliser ajax.beginform mais cela ne fonctionne pas non plus car nous redirigeons la page (à la même page avec différents paramètres comme: view = 3/view = 4) en cliquant sur la carte.

S'il vous plaît me suggérer ce que je devrais changer et comment le faire.

Merci

code

dans la cible div:

<div class="damageAreaMid" id="dvdamageAreaMid"> 
         <% foreach (var item in Model) 
          { %> 
         <div class="area"> 
          <h2> 
           <%: item.Component %></h2> 
          <% Html.RenderPartial("~/Views/Shared/UCWorkArea.ascx", item.VehicleOption(item.ComponentID, item.Component));%> 


         </div> 
         <% } %> 
        </div> 

Répondre

1

Vous pouvez utiliser AJAX et rafraîchir seulement la partie de la page qui doit être rafraîchi.

public ActionResult BodyWork(string view) 
{ 
    SecureModelService service = new SecureModelService(); 
    return View(service.ListBodyWork(view)); 
} 

public ActionResult BodyWork(BodyWorkModel model) 
{ 
    //some code 
    return PartialView(model); 
} 

Et selon vous AJAXify les liens sur le plan de l'image:

$(function() { 
    $('#somecontainer a').click(function() { 
     $('#someresultcontainer').load(this.href); 
     return false; 
    }); 
}); 
+0

fait dans la div cible j'utilise boucle pour afficher les données en utilisant un UserControl. Code: –

+0

J'ai placé le code de ma cible div avec question. plez m'aider –

Questions connexes