2010-05-10 16 views
0

J'ai un peu de mal à savoir comment je peux enregistrer des éléments d'une liste que j'ai dans l'état Application dans global.asax as- Application [""].Enregistrement d'une liste d'éléments dans l'état de l'application ASP.NET MVC?

Mon contrôleur prend essentiellement une entrée de l'utilisateur, je passe ensuite cela à une autre classe Méthode en tant que paramètres, il est ajouté à une liste tout le temps. Ces données sont ajoutées à la liste que je veux stocker, mais sans utiliser de db. En utilisant l'état de l'application. . J'ai instancié cette classe et appelez sa méthode pour renvoyer la liste d'articles mais je ne pense pas que l'état d'application l'enregistre.

Voici ce que j'ai jusqu'à présent. .

 protected void Application_Start() 
    { 
     RegisterRoutes(RouteTable.Routes); 


     TimeLineInformation t = new TimeLineInformation(); 
     IList<SWTimeEnvInfoDTO> g = t.getInfo(); 

     Application["AppID"] = g; 
    } 

^Global.asax

 IList<SWTimeEnvInfoDTO> result = new List<SWTimeEnvInfoDTO>(); 

    public void returnTimeLineInfo(string SWrelease, string EnvName, DateTime SDate, DateTime EDate) { 


     SWTimeEnvInfoDTO myDTO = new SWTimeEnvInfoDTO(); 
     myDTO.softwareReleaseName = SWrelease; 
     myDTO.environmentName = EnvName; 
     myDTO.StartDate = SDate; 
     myDTO.EndDate = EDate; 

     result.Add(myDTO); 

     getInfo(); 


    } 


    public IList<SWTimeEnvInfoDTO> getInfo() { 

     return result; 

    } 

^classe im appelant

Le type de SWTimeEnvInfoDTO a méthodes get et set pour les données. J'appelle également l'application à partir d'une vue. Il fonctionne avec une chaîne

Application ["AppID"] = "fgt";

et montre une fois que je l'ai lu de mon point de vue.

Répondre

1

Mise à jour: Vous devez utiliser la coulée pour récupérer variable que vous avez enregistré à l'application et enregistrez-le si elle a changé:

IList<SWTimeEnvInfoDTO> result = Application["AppID"] != null ? (IList<SWTimeEnvInfoDTO>)Application["AppID"] : new List<SWTimeEnvInfoDTO>(); // retrieve data 

result.Add(...);    // add some new items 
Application["AppID"] = result; // save added values 
+0

Merci, je debigging toujours bien et son retour ne nouveaux articles que je 'ai ajouté dans la liste à l'état de l'application pour le stockage, il lit la valeur initiale qui est nulle mais comme j'ajoute plus d'éléments, rien. ? – Calibre2010

+0

Vous devez 1) extraire la valeur actuelle du stockage de l'application 2) apporter des modifications 3) mettre la valeur modifiée au stockage de l'application –