asp.net 使用 asp.net Web控件和简单的html输入控件有什么区别
本文关键字:控件 net asp 输入 什么 区别 html 简单 使用 Web | 更新日期: 2023-09-27 18:31:57
在我的 asp.net Web 控件表单中,我使用两个文本框,第一个是简单的输入 html 控件,第二个是 asp.net 输入 Web 控件。
<form id="form1" runat="server">
Email: <input type="text" id="txt_email" name="txt_email" value="" /><br />
Email2: <asp:TextBox ID="txt_email2" runat="server"></asp:TextBox><br />
<asp:Button ID="btn_login" Name="btn_login" runat="server" Text="Button"
onclick="btn_login_Click" />
</form>
我需要知道使用简单控件和 asp.net 输入控件有什么区别,它们都在表单提交后将值传递给后面的代码。 有人可以帮助我吗?
如示例中所定义input type="text"
甚至对代码隐藏不可见,因为它缺少runat="server"
属性。
如果您确实添加了它 - 仍然存在差异。 ASP.NET TextBox 更高级,与模型的其余部分相同 ASP.NET(例如,它具有属性.Text
与 .Value
HtmlInput 控件,它具有事件和其他属性)。
但是,如果您只需要将文本信息传递回服务器,则它们中的任何一个都可以完成这项工作。
最大的区别是
- asp.net 控件呈现在服务器上,因此它们在服务器上的开销比使用传统控件更多 - 传统控件(默认情况下)呈现一次,然后基本上驻留在客户端的浏览器上,ASP 控件持久存在于服务器端。
- 可以直接在文件隐藏的代码中访问和使用 ASP 控件。
- ASP 控件具有一些通常可用于其字段的其他标记。
- 正如@Yuriy-Galanter所指出的,访问值的方式略有不同。
asp:Textbox 在发出页面请求时将 HTML 呈现给客户端/浏览器。想象一下 ASP.NET 控件,在本例中,asp:TextBox 作为服务器端代码位,该代码知道在向服务器发出 aspx 页请求时呈现<input type="text">
HTML 元素。
ASP.NET 编译器在分析 aspx 页时,只会吐出 Email: 和 Email2 的 <input type="text">
HTML 元素:ASP.NET 编译器知道这是一个服务器控件,因为 runat="server" 标记。因此,ASP.NET 编译器具有对服务器上 ASP.NET 程序集的引用,读取<asp:TextBox>
的代码,并知道最终使用<input type="text" id="txt_email2" />
响应页面请求
服务器端控件可在代码隐藏页中访问。所以可以在后面的代码中访问,但<input>
元素不是。在这一点上,您可以在研究中考虑这一点,如果您将runat="server"添加到您的元素中,则可以在代码隐藏中访问它。