你好,我有一个小的List<string>
,我只想在一个页面上跨回发进行维护。该列表包含的项目不超过10个,每个项目最多40个字符(无敏感数据)。
我知道也有人问过类似的问题,但我对将其存储在ViewState
或Session
中有点矛盾。我听说,即使是很小的字符串值也会导致ViewState值的大小大幅增加。我想遍历List并使用Linq来查询它,但我最好使用string[]
数组,这个List(大小适中)可以存储在ViewState
中吗?还是应该存储在Session
中?非常感谢。
我更关心这个List<>
的范围。如果仅限于这一页,那么我认为使用ViewState
是完全可以接受的;这正是它的意义所在。
但是,如果您需要在多个页面上保持这一点,那么评估Session
或Cache
会更有意义。
如果每个用户的列表不同,或者可以在多个用户之间共享,我也会记住。在这种情况下,我会倾向于Cache
。
最后,在这一点上,我可能会被否决,但您也可以考虑使用SessionPageStatePersister类将ViewState
存储在服务器端内存中的选项。
祝你好运!
如果你不滥用ViewState,那么在它中存储东西并不是一个糟糕的主意。如果列表很小,而且只在一个页面上有意义,那么就去做吧。
只要记住ViewState可以被篡改,所以如果你不想让客户端知道它,那么你就是黄金。否则,将其存储在会话中。