5

当然,它们以“<asp:”开头的事实足以推断它们是服务器控件?或者它只是为了完整性而包含在内(例如,它们看起来类似于 <input runat="server" 的服务器控件声明)。还是有什么特殊原因?

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

4

1 回答 1

8

取自此论坛主题

Internet Explorer 支持 DHTML 行为。

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

看看这里

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

Mike Schinkel 也有一篇博文探讨为什么需要 runat=server。

于 2009-07-17T14:54:11.323 回答