在HiddenField的情况下,Visible属性的用途是什么?

Lea*_*ner 3 asp.net oop controls properties hidden-field

Visible我所知,该属性有助于启用或禁用控件的可见性.

但它HiddenField在ASP.NET 中的控件的用途是什么?

Cod*_*ray 5

由于继承,Visible属性甚至存在于HiddenField对象上.

该文档表明HiddenField该类继承自定义该属性的基ControlVisible.继承意味着从基类继承的所有类都会自动获取或获取基类公开的所有方法.在这种情况下,即使你在问题中指出它显然无用,它仍然会获得其基类HiddenFieldVisible属性Control.

这不是因为语言通常具有"愚蠢的东西"(尽管我不会质疑该声明的真实性),这是因为面向对象的设计使得无法从基类继承的派生类中删除方法.


Dan*_*anO 5

VisibleHiddenField上的属性与其他控件上的属性类似.如果HiddenField控件的Visible属性设置为false,则控件不会呈现给页面.通常,HiddenField呈现为<input type= "hidden"/>元素.但如果它不可见,则其数据将保存在页面的视图状态中.

在.Net 2.0中引入HiddenField的原因是作为替代

  • 查看状态
  • 会话状态
  • 饼干

作为存储那些隐藏状态信息的地方,当这些位置不可用或不合需要时.将Visible设置为false只会强制它再次使用viewstate而不是渲染<input type= "hidden"/>.因此它稍微违背了目的,但对于用户不需要看到的一些数据来说,它是一个容易理解的容器.

它是否作为文档中的元素(Visible = true)或viewstate编码(Visible = false)呈现,并没有太大的区别.

重要的是要知道HiddenField的值实际上是与页面一起发送的,即使visible属性为false,也不应该用于敏感信息.

ASP.NET HiddenField可见属性

wiki.ASP.NET上的ASP.NET HiddenField