你好我有一个小的List<string>
,我希望只在一页上回发。列表不会包含超过10个项目,每个项目最多40个字符(无敏感数据)。
我知道已经提出了类似的问题,但我在将其存储在ViewState
或Session
之间存在一些矛盾。我听说即使是很小的字符串值也会导致ViewState值的大小增加很多。我想遍历List并使用Linq来查询它,但是我最好使用string[]
数组,并且这个List(简单的大小)可以存储在ViewState
或者我应该将它存储在Session
吗?谢谢。
答案 0 :(得分:2)
我会更关注这个List<>
的范围。如果它仅限于这一页,那么我认为使用ViewState
是完全可以接受的;这正是它的意思。
但是,如果您需要在多个页面中保留此内容,那么评估Session
或Cache
会更有意义。
如果每个用户的列表不同,或者它可以在多个用户之间共享,我也会记住。在那种情况下,我倾向于Cache
。
最后,我可能会在这个问题上被遗忘,但你也可以看一下使用SessionPageStatePersister 类将ViewState
存储在服务器端内存中的选项。 / p>
祝你好运!
答案 1 :(得分:1)
如果你不滥用它,在ViewState中存储东西并不是一个糟糕的主意。如果列表很小并且只在一个页面上有意义,那就去吧。
只要记住ViewState可以被篡改,所以如果你不想让客户知道它,那么你就是金色的。否则将其存储在Session中。