如何存儲在控制器中提交給控制器大約一個小時的內存列表,以便我可以調用另一個操作並提取這些數據?ASP.NET MVC存儲從視圖中檢索的數據臨時
原因:我需要展示一個演示應用程序,沒有時間寫出數據庫邏輯。所以我想用對象列表模擬一個數據庫。
例如,我將一個人名列表{FirstName,LastName}發送給一個控制器動作'Create',以將其臨時存儲在列表中。
然後我再調用另一個控制器動作'GetPeople'來檢索這個人員列表。
如何存儲在控制器中提交給控制器大約一個小時的內存列表,以便我可以調用另一個操作並提取這些數據?ASP.NET MVC存儲從視圖中檢索的數據臨時
原因:我需要展示一個演示應用程序,沒有時間寫出數據庫邏輯。所以我想用對象列表模擬一個數據庫。
例如,我將一個人名列表{FirstName,LastName}發送給一個控制器動作'Create',以將其臨時存儲在列表中。
然後我再調用另一個控制器動作'GetPeople'來檢索這個人員列表。
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;
}
}
我能理解你的目標是什麼嗎?它是否在兩個控制器之間傳遞數據? 控制器的作用是從底層數據存儲中獲取數據,處理數據並將數據傳遞給視圖以供顯示。
在這個場景中,您描述的是要將數據提交給控制器一個小時,然後另一個控制器想要獲取這些數據?你爲什麼要保存這些數據在內存中?是因爲兩個控制器使用相同的數據,並且您希望避免兩次往返數據存儲。
取決於如何波動Web服務器進程,以及如何重要的數據是,您可以:
你可以使用一個會話
Session["list"] = MyList
IT方面有點像你只是想模擬一些數據。爲什麼不只是創建一個模擬的界面,你可以把它放在你的數據庫中。這也會讓你的測試變得更容易。
您可以創建一個靜態類,它返回所需的所有數據,然後調用它。如果您想添加到它,請創建一個初始化函數,該函數在您的應用第一次啓動時運行,將所有數據存儲在Session
中,然後只需在Session
商店中添加和刪除數據。
我編輯了我的問題。 – GatesReign 2010-04-14 05:32:06