正如问题所述。 这是一个将数据存储在视图状态的良好实践 如果不是那么我需要为性能和安全措施做些什么。 /> 当我选择安全性和性能时,我缺乏什么,反之亦然。
我想做什么。通过DataTable(Source)在Gridview中显示数据。在postBacks中。我想保存我的Query Cost.Load数据来自视图状态或Cache对象,但不是数据库。
答案 0 :(得分:2)
这不是一个好的做法,在视图状态中存储数据表会使您的页面变大,从而减慢用户和服务器的处理速度。
如果您需要保留数据表,可以将其添加到缓存中或每次只重新查询
答案 1 :(得分:1)
通常,视图状态应保持较小。您无法将数据表存储在缓存或会话中(不太好)。 如果您的视图状态是加密的,则说它不安全取决于。
答案 2 :(得分:1)
DataTable
是一个非常大的对象 - 将其存储在ViewState
中会使其膨胀并增加每个请求的下载时间。在这方面不利于表现。
在安全性方面 - ViewState
可以在客户端解密,因此DataTable
不安全。
你需要做什么取决于你想要达到的目标(你在问题中没有表明)。
您可能希望将服务器端存储在Cache
或Session
对象中,然后从数据存储中重新获取它。这取决于要求。