HiddenField不是一个Web控件吗?

5
为什么System.Web.UI.WebControls.HiddenField继承自System.Web.UI.Control而不是System.Web.UI.WebControls.WebControl呢?如果不是隐藏字段用于网页,这个摆放似乎很不合逻辑。为什么会设计成这样呢?
这使得有些事情变得非常烦人,例如你不能做WebControl x = new HiddenField();

请注意,WebControl 也继承自 Control - Magnus
确实如此,但您无法将HiddenField强制转换为WebControl。(是的,我正在重构代码:]) - Izzy
1个回答

5

UI.ControlUI.WebControls.WebControl之间的主要区别在于,WebControl旨在作为具有UI组件的基类。由于隐藏字段从不向用户显示任何内容(毕竟它是隐藏的),因此UI.Control是更适合的基类。


但我们都知道,当您禁用CSS时,可以显示隐藏字段。但是对于逻辑加1。 - Izzy
3
我认为HiddenField渲染为<input type='hidden'/>,即使CSS被禁用也仍然隐藏。如果它被渲染为另一种HTML元素并带有'display:none;' CSS,则仍将显示。但我非常确定这不是这种情况。 - Nate Dudek
在重构过程中,我注意到大部分更改都涉及设置宽度/高度的WebControls - 因此,有这样的属性对于不应该/不会被显示的字段是没有意义的,这个推理是正确的。 - Izzy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接