保存应用程序状态ASP.NET MVC中的项目列表?

问题描述:

我在知道如何从列表中保存项目时遇到了一些麻烦,我在Application.asax中的应用程序状态中存储了应用程序[“”]。保存应用程序状态ASP.NET MVC中的项目列表?

我的控制器基本上接受了一些用户输入,然后我把它传递给另一个类方法作为参数,它一直被添加到列表中。这些数据即将添加到列表中,我想存储它,但不使用数据库。通过使用Application State。 。我一直在实例化这个类并调用它的方法来返回项目列表,但我不认为应用程序状态正在保存它。

这是我到目前为止。 。

 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; 

    } 

^类即时调用

的SWTimeEnvInfoDTO类型对数据获取和设置方法。

我也从视图调用应用程序。它与字符串一起工作

应用[“AppID”] =“fgt”;

并显示这一次我从我的看法中读取它。

更新:你应该用铸造检索变量已保存在应用程序,并保存它,如果它已经改变了:

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

谢谢,我还是debigging但其也不回我的新项目已将列表添加到应用程序状态以进行存储,它读取的初始值为空,但由于我添加了更多项目,所以没有任何结果。 。? – Calibre2010 2010-05-10 09:12:52

+0

您应该1)从应用程序存储中提取当前值2)进行更改3)将更改后的值存储到应用程序存储 – 2010-05-10 09:57:21