我在哪里可以在ASP MVC网站上存储共享数据?

时间:2012-02-23 22:51:07

标签: asp.net asp.net-mvc

我正在使用C#开发ASP MVC项目。

我的问题基本上是存储您在网站上给定部分获得的某些数据的最佳位置,例如,处理用户对网站的SignOn的方法,然后您想要访问网站其他部分的数据,比如模型层的类。

假设数据只是一个字符串列表,哪个更好,将它存储为列表或用列表包装列表?

感谢。

4 个答案:

答案 0 :(得分:2)

这取决于您需要多长时间存储数据。

  1. 如果是单个请求,您可以在控制器上使用TempData

  2. 如果您只想在每个会话中存储它(也就是下次用户登录该站点时它将会消失)您可以使用Session

  3. 如果您想永久保留它,那么您将需要使用某种离线存储,例如某种数据库或某种文件。

  4. 祝你好运。

答案 1 :(得分:1)

嗯,请原谅我的无知,但你不能把它存放在数据库中吗?

“共享”是什么意思?由谁共享,由不同的页面但是同一个用户共享?还是由不同的用户?

如果是后者 - > DB。

如果是前者,无论是TempData,还是您谈论“身份验证”数据,请将其存储在表单身份验证票证中(假设表单身份验证)。

答案 2 :(得分:0)

我认为之前提到的类似问题是URL Session variables in ASP.NET MVC 您可能会将它们存储在会话中

答案 3 :(得分:0)

  

这是存储您在给定时获得的某些数据的最佳位置   例如,关于处理该网站的方法,请参阅您的网站   用户登录该站点,然后您想要访问该数据   在网站的其他部分,比如模型的类别   层

数据库是存储此类信息的绝佳选择。或者cookie,如果它是用户特定的,你不需要它持续很长时间。或者服务器上的文件。或者在云端。或者围绕C ++非托管Win32函数编写P / Invoke包装器,该函数将数据存储在公司的Intranet FTP服务器上。您拥有的可能性接近无限。选择一个你觉得最舒服的那个。

我明确建议您使用与其他人可能建议的相反的会话。