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 输入控件有什么区别,它们都在表单提交后将值传递给后面的代码。 有人可以帮助我吗?

asp.net 使用 asp.net Web控件和简单的html输入控件有什么区别

如示例中所定义input type="text"甚至对代码隐藏不可见,因为它缺少runat="server"属性。

如果您确实添加了它 - 仍然存在差异。 ASP.NET TextBox 更高级,与模型的其余部分相同 ASP.NET(例如,它具有属性.Text.Value HtmlInput 控件,它具有事件和其他属性)。

但是,如果您只需要将文本信息传递回服务器,则它们中的任何一个都可以完成这项工作。

最大的区别是

  1. asp.net 控件呈现在服务器上,因此它们在服务器上的开销比使用传统控件更多 - 传统控件(默认情况下)呈现一次,然后基本上驻留在客户端的浏览器上,ASP 控件持久存在于服务器端。
  2. 可以直接在文件隐藏的代码中访问和使用 ASP 控件。
  3. ASP 控件具有一些通常可用于其字段的其他标记。
  4. 正如@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"添加到您的元素中,则可以在代码隐藏中访问它。