2010-04-14 44 views
0

如何存儲在控制器中提交給控制器大約一個小時的內存列表,以便我可以調用另一個操作並提取這些數據?ASP.NET MVC存儲從視圖中檢索的數據臨時

原因:我需要展示一個演示應用程序,沒有時間寫出數據庫邏輯。所以我想用對象列表模擬一個數據庫。

例如,我將一個人名列表{FirstName,LastName}發送給一個控制器動作'Create',以將其臨時存儲在列表中。

然後我再調用另一個控制器動作'GetPeople'來檢索這個人員列表。

回答

0
public static class PeopleRepository 
{ 
    private static List<Person> people; 

    static PeopleRepository() 
    { 
     people = new List<Person>(); 
     // some test data 
     people.Add(new Person { FirstName = "Foo", LastName = "Bar" }); 
     // ... 
    } 
    public static void AddPerson(Person p) 
    { 
     people.Add(p); 
    } 
    public static List<Person> GetPersons() 
    { 
     return people; 
    } 
} 
0

我能理解你的目標是什麼嗎?它是否在兩個控制器之間傳遞數據? 控制器的作用是從底層數據存儲中獲取數據,處理數據並將數據傳遞給視圖以供顯示。

在這個場景中,您描述的是要將數據提交給控制器一個小時,然後另一個控制器想要獲取這些數據?你爲什麼要保存這些數據在內存中?是因爲兩個控制器使用相同的數據,並且您希望避免兩次往返數據存儲。

+0

我編輯了我的問題。 – GatesReign 2010-04-14 05:32:06

0

取決於如何波動Web服務器進程,以及如何重要的數據是,您可以:

  • 臨時存儲它在數據庫中(將是最安全的)
  • 儲存於該web cache
0

你可以使用一個會話

Session["list"] = MyList 
0

IT方面有點像你只是想模擬一些數據。爲什麼不只是創建一個模擬的界面,你可以把它放在你的數據庫中。這也會讓你的測試變得更容易。

您可以創建一個靜態類,它返回所需的所有數據,然後調用它。如果您想添加到它,請創建一個初始化函數,該函數在您的應用第一次啓動時運行,將所有數據存儲在Session中,然後只需在Session商店中添加和刪除數據。

相關問題