为啥 ASP.Net 服务器控件声明需要 runat="server" 属性?

Posted

技术标签:

【中文标题】为啥 ASP.Net 服务器控件声明需要 runat="server" 属性?【英文标题】:Why do ASP.Net server control declarations require the runat="server" attribute?为什么 ASP.Net 服务器控件声明需要 runat="server" 属性? 【发布时间】:2010-11-11 17:46:09 【问题描述】:

确实,它们以“

当我不小心这样做时,编译器告诉我我错过了它,这总是让我感到烦恼。有点像“var”背后的想法——如果编译器知道它是什么......为什么还要期待我陈述它?

【问题讨论】:

看看***.com/questions/304290/asp-net-why-runatserver 【参考方案1】:

取自this forum thread:

Internet Explorer 支持 Dhtml 行为。

[asp:control 语法] 不代表服务器 控制。您可以创建客户端 DHTML 具有命名空间并将 在客户端机器上运行。还, XHTML 中允许命名空间,并且 从技术上讲,您可以使用 asp 命名空间 对于客户的其他事情,如果你 希望。 Runat="server" 防止 命名空间冲突。如果元素没有 runat="server" 属性,它将是 发送到客户端浏览器不变。 因此,您可以使用 HTML 组件 (HTC) 在 ASP.NET 页面中也是如此。

看这里

http://msdn.microsoft.com/workshop/author/behaviors/howto/creating.asp http://msdn.microsoft.com/workshop/author/behaviors/overview.asp

Mike Schinkel 还 has a blog post 探讨了为什么需要 runat=server。

【讨论】:

我会以重复的形式关闭我的问题(另见下文),但它不会让我这样做。有什么想法吗?

以上是关于为啥 ASP.Net 服务器控件声明需要 runat="server" 属性?的主要内容,如果未能解决你的问题,请参考以下文章

为啥ASP.net中动态控件在刷新后不能

ASP.NET中服务器控件RadioButtonList 值改变为啥不触发SelectedIndexChanged

为啥asp.net响应很慢

ASP.NET后台怎么获取.aspx页面的Checkbox的是不是选中状态?

为啥 ASP.NET 动态控件即使添加到 Page_Load 中也能保持 ViewState?

数据网格控件已禁用