为什么使用隐藏字段?

pav*_*red 17 asp.net hidden-fields

我一直看到Web应用程序中使用了很多隐藏字段.我使用过编写的代码,使用大量隐藏字段和来自可见字段的数据值来回发送.虽然我不明白为什么使用隐藏的字段.我几乎总能想到在不使用隐藏字段的情况下解决同一问题的方法.隐藏字段如何帮助设计?

谁能告诉我隐藏字段提供的优势究竟是什么?为什么使用隐藏字段?

Thi*_*ilo 18

隐藏字段是最简单的方法,这就是为什么它们被使用了很多.

备择方案:

  • 在会话服务器端存储数据(使用sessionid cookie)
  • 在事务服务器端存储数据(事务id为单个隐藏字段)
  • 使用URL路径而不是隐藏的字段查询参数(如果适用)

主要关注点:

  • 不能信任隐藏字段的值,以防止页面之间没有被篡改(而不是服务器端存储)
  • 每次都需要发布大数据,可能是一个问题,某些数据是不可能的(例如上传的图像)

主要优点:

  • 没有在页面和多个浏览器窗口之间溢出的粘性会话
  • 不需要服务器端清理(对于过期数据)
  • 客户端脚本可访问

  • 缺少用于存储此类值的良好替代ViewState. (2认同)

mne*_*syn 12

假设您要编辑对象.现在将ID放入隐藏字段会很有帮助.当然,您必须永远不要依赖该值(即确保用户对insert/ 具有适当的权利update).

不过,这是一个非常方便的解决方案.在可见字段(例如只读文本框)中显示ID是可能的,但对用户有害.

将ID存储在会话/ cookie中是令人望而却步的,因为它不允许同时打开多个打开的编辑窗口并施加生命周期限制(会话超时导致编辑操作中断,非常烦人).

可以使用URL,但会破坏设计规则,即在修改数据时使用POST.此外,由于用户可以看到它,因此会创建更加丑陋的URL.