2010-04-14 45 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商店中添加和删除数据。

相关问题