我刚刚开始了一份新工作并继承了一个噩梦般的 WebForms .net 4.0 项目,该项目在很多地方都出错了。
我有一个在 ViewState 中存储 DataTable 的用户控件。该代码通过索引号引用整个代码中的列,这使得它完全不可读。我知道我可以按名称引用列以使其更具可读性,但我更愿意将其分解为一个列表。
之前的开发者将列表存储在 ViewState 中,因为更改无法持久化回数据库,我们读入数据,销售人员可以对定价进行修改,然后将信息推送到 XML 格式以生成销售订单表单PDF格式。所以我们需要一种临时存储的机制。
如果我有从头开始的奢侈,我会在 JSON 中提取数据并在客户端完成所有操作,但我还没有那种奢侈。
自从我使用 DataTables 已经很久很久了,我很确定将它放在 ViewState 中并不好,对吗?它会给 ViewState 带来什么样的负载;我们正在查看 44 列,通常大约 25 行。:秒
其次,如果在 ViewState 中放置一个 List 与在 DataTable 中放置一个很大的区别,或者它们是否都一样糟糕 - 在这种情况下,我从当前位置切换出来不会造成伤害?
第三个问题,对行的更新是在 ViewState DataTable 中自动更新的,这和 List 一样吗?
最后一个,更多寻求建议。存储此信息(最好是列表)服务器端的最佳位置在哪里 - 会话或缓存会更好吗?