2009-11-19 3 views
0

Dans mon application mvc, j'ai un contrôleur où de nombreuses actions sont les leurs. Je possède une propriété pour la classe de contrôleur.membre du contrôleur

Dans le contrôleur d'index je suis le réglage de la valeur de la propriété,

sera elle en mesure d'obtenir une même valeur dans une autre action ..

public class HomeController : BaseController 
    { 
int sample =0; 

public ActionResult Index(int query) 
     { 
     this.sample = test; 
     } 

     public ActionResult Result() 
     { 
     this.sample -------- can this 'll give the value of wat i get in index action. 

    } 

}

Répondre

1

Comme le contrôleur sera créé et détruit avec chaque requête Web, vous ne pouvez pas stocker des données dans des variables privées sur des requêtes Web, ce qui est une bonne chose parce que différents utilisateurs vont faire des requêtes différentes, vous devez donc utiliser la mise en cache.

Essayez ceci:

public class HomeController : BaseController 
    { 

     public ActionResult Index(int query) 
     { 
      ControllerContext.HttpContext.Session["query"] = query; 
     } 

     public ActionResult Result() 
     { 
      int query = (int)ControllerContext.HttpContext.Session["query"]; 
     } 
    } 
+0

j'ai utilisé TempData il sera commun à tous les utilisateurs ou pour TempData séparé seule connexion sera là ..? – Santhosh

+0

Le dictionnaire de données TempData est disponible pour la requête en cours et la requête immédiatement suivante pour un seul utilisateur. –

+0

au lieu d'utiliser le cache, vous pouvez le stocker dans HttpContext.session ["query"], est-ce une meilleure option? .. thanks –