Asp.net mvc ASP.NET MVC存储从临时视图检索的数据

Asp.net mvc ASP.NET MVC存储从临时视图检索的数据,asp.net-mvc,Asp.net Mvc,如何在内存中存储提交给控制器约一小时的数据列表,以便调用另一个操作并提取此数据 原因:我需要展示一个演示应用程序,没有时间编写数据库逻辑。所以我想用对象列表来模拟一个数据库 例如,我向控制器操作“Create”发送一个人员列表{FirstName,LastName},将其临时存储在列表中 然后,我稍后调用另一个控制器操作“GetPeople”,以检索此人员列表。我能理解您的目标吗?它是否在两个控制器之间传递数据? 控制器的作用是从底层数据存储中获取数据,处理数据,并将数据传递给视图以供显示 在您

如何在内存中存储提交给控制器约一小时的数据列表,以便调用另一个操作并提取此数据

原因:我需要展示一个演示应用程序,没有时间编写数据库逻辑。所以我想用对象列表来模拟一个数据库

例如,我向控制器操作“Create”发送一个人员列表{FirstName,LastName},将其临时存储在列表中


然后,我稍后调用另一个控制器操作“GetPeople”,以检索此人员列表。

我能理解您的目标吗?它是否在两个控制器之间传递数据? 控制器的作用是从底层数据存储中获取数据,处理数据,并将数据传递给视图以供显示


在您描述的场景中,您希望向控制器提交数据一个小时,然后另一个控制器希望获取此数据?为什么要将此数据保留在内存中?是因为两个控制器使用相同的数据,并且您希望避免两次往返数据存储。

根据web服务器进程的不稳定性和数据的重要性,您可以:

  • 将其临时存储在数据库中(将是最安全的)
  • 把它放在冰箱里

    • 您可以使用会话

      Session["list"] = MyList
      

      听起来你只是想模拟一些数据。为什么不创建一个模拟接口来代替数据库呢。这也会使您的测试更容易

      您可以创建一个静态类,返回您需要的所有数据,然后调用它。如果您希望能够添加到它中,请创建一个初始化函数,该函数在应用程序首次启动时运行,将您的所有数据存储在
      会话中,然后从
      会话中添加和删除您的数据。

      公共静态类PeopleRepository
      
      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;
          }
      }
      
      { 个人静态列表; 静态PeopleRepository() { 人员=新列表(); //一些测试数据 添加(新人物{FirstName=“Foo”,LastName=“Bar”}); // ... } 公共静态无效添加人(人p) { 新增(p); } 公共静态列表GetPersons() { 还人,; } }