据我了解,Visible
属性有助于启用或禁用控件的可见性。
但是在ASP.NET中HiddenField
控件的情况下它有什么用?
答案 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,也不应该用于敏感信息。
答案 2 :(得分:-4)
可能因为把它留在那里比把它留在那里更难。
许多语言都有愚蠢的东西。就像C和C ++中的一元+运算符一样