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

时间:2010-12-18 15:13:27

标签: asp.net oop properties controls hidden-field

据我了解,Visible属性有助于启用或禁用控件的可见性。

但是在ASP.NET中HiddenField控件的情况下它有什么用?

3 个答案:

答案 0 :(得分:5)

由于 inheritance ,即使在Visible对象上也存在HiddenField属性。

该文档表明HiddenField class继承自定义Visible属性的基础Control class。继承意味着从基类继承的所有类都会自动获取或获取基类公开的所有方法。在这种情况下,HiddenField正在获取其基础Visible课程的Control属性,即使您在问题中指出它显然无用。

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

答案 1 :(得分:5)

HiddenField上的Visible属性与其他控件上的属性类似。如果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 Visible Property

ASP.NET HiddenField on wiki.ASP.NET

答案 2 :(得分:-4)

可能因为把它留在那里比把它留在那里更难。

许多语言都有愚蠢的东西。就像C和C ++中的一元+运算符一样