2010-05-10 85 views
0

我在知道如何從列表中保存項目時遇到了一些麻煩,我在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」;

並顯示這一次我從我的看法中讀取它。

回答

1

更新:你應該用鑄造檢索變量已保存在應用程序,並保存它,如果它已經改變了:

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