使用runat = server属性的asp控件和html之间的区别

时间:2013-07-27 07:31:02

标签: asp.net runat

你能用“runat = server”属性向我解释控件和html组件之间的区别吗?使用它的最佳做法是什么?感谢。

2 个答案:

答案 0 :(得分:1)

<span runat="server" id="myspan"> </span> 

映射到System.Web.UI.HtmlControls中定义的GenericControl类。从它的msdn描述:

  

System.Web.UI.HtmlControls命名空间包含允许的类   您在Web窗体页上创建HTML服务器控件。 HTML服务器   控件在服务器上运行并直接映射到标准HTML标记   大多数浏览器都支持。这允许您以编程方式   控制Web窗体页面上的HTML元素。

<asp:Label runat="server" id="asplabel"></asp:Label> 

映射到System.Web.UI.WebControls中的Label类。从它的msdn描述

  

System.Web.UI.WebControls命名空间包含允许的类   您要在网页上创建Web服务器控件。 Web服务器控件   在服务器上运行并包含表单控件,如按钮和文本   框。它们还包括特殊用途控件,如日历。   由于Web服务器控件在服务器上运行,因此可以   以编程方式控制这些元素。虽然是Web服务器控件   呈现为HTML,其对象模型不一定反映   HTML语法。

     

System.Web.UI.WebControls命名空间包含的类   呈现为HTML标记,例如TextBox控件和ListBox   控制。命名空间还包含未呈现的类   Web页面,但支持数据操作,如SqlDataSource   和ObjectDataSource类。其他控件,如GridView和   DetailsView控件,支持数据显示和编辑。 WebControl   class作为许多类的基类   System.Web.UI.WebControls命名空间。

基本上,来自WebControl命名空间的控件为您提供了更多功能,其设计目标是尽可能地模仿VB6表单,以便无缝地在winclient和webclient编程之间进行转换(返回初始)。

我个人倾向于尽可能地使用来自WebControls命名空间的控件,并且如果我需要在WebControl上不可用且不可重写的行为,则只回退到HtmlConttols。

来自K. Scot Allen的同一主题的blog

答案 1 :(得分:0)

服务器控件是服务器可以理解的标签。

有三种服务器控件: HTML服务器控件 - 传统的HTML标签 Web服务器控件 - 新的ASP.NET标记 验证服务器控件 - 用于输入验证

HTML服务器控件:

默认情况下,ASP.NET文件中的HTML元素被视为文本。要使这些元素可编程,请添加一个runat =&#34;服务器&#34;属性为HTML元素。

示例:

<form runat="server">
......
</form>

Web服务器控件:

Web服务器控件是服务器可以理解的特殊ASP.NET标记。

与HTML服务器控件一样,Web服务器控件也在服务器上创建,它们需要一个runat =&#34;服务器&#34;属于工作。但是,Web服务器控件不一定映射到任何现有的HTML元素,它们可能代表更复杂的元素。

示例:

<asp:Button ID="but" runat="server"/>

验证服务器控件:

验证服务器控件用于验证用户输入。如果用户输入未通过验证,则会向用户显示错误消息。

示例:

<asp:RequiredFieldValidator ID="req1" runat="server" ControlToValidator="TextBox1" ErrorMessage="please enter proper details"/>