【发布时间】:2012-06-05 22:01:54
【问题描述】:
我刚刚开始了一份新工作,并继承了一个噩梦般的 WebForms .net 4.0 项目,该项目在很多地方都出错了。
我有一个在 ViewState 中存储 DataTable 的用户控件。该代码通过索引号引用整个代码中的列,这使得它完全不可读。我知道我可以按名称引用列以使其更具可读性,但我更愿意将其分解为一个列表。
之前的开发者将列表存储在 ViewState 中,因为更改无法持久化回数据库,我们读入数据,销售人员可以对定价进行修改,然后将信息推送到 XML 格式以生成销售PDF 格式的订购单。所以我们需要一个临时存储的机制。
如果我有从头开始的奢侈,我会在 JSON 中提取数据并在客户端完成所有操作,但我还没有这种奢侈。
自从我使用 DataTables 已经很久很久了 很确定把它放在 ViewState 中不好,是吗? 正确的?它会给 ViewState 带来什么样的负载; 我们正在查看 44 列,通常大约 25 行。 :s
其次,如果将 List 放入 ViewState 而不是 DataTable 或者它们都一样糟糕 其他 - 在这种情况下,我不会伤害我目前的职位 换掉?
第三个问题,对行的更新会在 ViewState DataTable,和List一样吗?
最后一个,更多探索建议。最好的地方在哪里 存储此信息(最好是列表)服务器端 - 将 Session 还是 Cache 更好?
【问题讨论】:
-
在视图状态中保存某些内容的原因是,如果您要在回发时使用它,并且您不希望重新创建它 - 或者您需要作为先前状态的参考。
-
但这也适用于缓存和会话?