如何存储在控制器中提交给控制器大约一个小时的内存列表,以便我可以调用另一个操作并提取这些数据?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