我有一个有3个用户控件的页面。我希望在这些用户控件之间共享来自数据库的一些数据。实际上我应该保存它。我现在使用静态类来存储它。我不认为这是个好主意。
这些数据实际上取决于第一个用户控件。因此,如果用户对第一个usercontrol控件进行了任何更改,那么我将再次从数据库中获取这些数据。
我不确定我应该在哪里存储这些数据。我应该使用会话还是静态类?
答案 0 :(得分:2)
一种方法是将它存储在Session变量中,并通过基类中定义的属性读取/写入Session变量,所有3个控件都继承自(或者,正如您所说的,它们都是静态类)进入)。
查看this answer以获取如何定义对Session变量进行读/写的属性的示例。
答案 1 :(得分:1)
如果您想要共享较长时间的数据,则将其保存到数据库并从相关页面调用它是好的。特别是如果他们可能决定离开/退出,然后到达最后一页,否则会保存它。
如果您只是在页面之间保存它,之后不需要保留它,使用Session肯定是有效的。
答案 2 :(得分:1)
这2个选项的范围不同。
当用户在Web应用程序中导航ASP.NET页面时,会话保留用户的数据。
和
静态类保留Web应用程序的所有实时数据(任何用户,任何会话)
答案 3 :(得分:1)
答案 4 :(得分:1)
您的选择是:
由于已经提到的原因,静态类不是一个好主意。