【问题标题】:HiddenField isn't a WebControl?HiddenField 不是 WebControl?
【发布时间】:2013-04-09 02:56:00
【问题描述】:

为什么System.Web.UI.WebControls.HiddenField 继承System.Web.UI.Control 而不是System.Web.UI.WebControls.WebControl?如果不是在网页中使用隐藏字段这一事实,这似乎真的不合逻辑。它设计成这样的原因是什么?

当你不能做WebControl x = new HiddenField();之类的事情时,这会让事情变得很烦人

【问题讨论】:

  • 注意WebControl也继承自Control
  • 确实如此,但您不能将 HiddenField 转换为 WebControl。 (是的,我正在重构 :])

标签: c# asp.net .net inheritance


【解决方案1】:

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

【讨论】:

  • 但我们都知道禁用 CSS 时可以显示隐藏字段。但逻辑 +1。
  • 我相信 HiddenField 呈现为 ,即使 CSS 被禁用,它仍然会被隐藏。如果它被呈现为具有“显示:无”的不同 HTML 元素; CSS,然后是的,它仍然会显示。但我很确定情况并非如此。
  • 在重构过程中,我注意到我的大部分更改都是围绕设置了宽度/高度的 WebControls 进行的——因此,拥有这样的属性对于不应该/赢得的字段毫无意义是有道理的不会显示。
猜你喜欢
  • 2010-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-30
相关资源
最近更新 更多