C# 在asp.net中,使用asp.net web控件和简单html输入控件的区别是什么

C# 在asp.net中,使用asp.net web控件和简单html输入控件的区别是什么,c#,html,asp.net,C#,Html,Asp.net,在我的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" run

在我的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>

电子邮件:
电子邮件2:

我需要知道使用简单控件和asp.net输入控件有什么区别。在表单提交后,它们都将值传递给代码。有人能帮我吗?

最大的区别在于

  • asp.net控件在服务器上呈现,因此与使用传统控件相比,它们在服务器上的开销更大-传统控件(默认情况下)呈现一次,然后基本上驻留在客户端浏览器上,asp控件在服务器端保持不变
  • asp控件可以直接在代码隐藏文件中访问和使用
  • asp控件有一些附加标记,通常可以在其字段上使用
  • 正如@Yuriy Galanter所指出的,访问值的方式略有不同

  • 最大的区别在于

  • asp.net控件在服务器上呈现,因此与使用传统控件相比,它们在服务器上的开销更大-传统控件(默认情况下)呈现一次,然后基本上驻留在客户端浏览器上,asp控件在服务器端保持不变
  • asp控件可以直接在代码隐藏文件中访问和使用
  • asp控件有一些附加标记,通常可以在其字段上使用
  • 正如@Yuriy Galanter所指出的,访问值的方式略有不同

  • 正如您的示例中定义的那样,
    input type=“text”
    对代码隐藏甚至不可见,因为它缺少
    runat=“server”
    属性

    如果你真的添加了它,仍然存在差异。ASP.NET Text Box更先进,与ASP.NET模型的其余部分保持一致(例如,它具有属性<代码> .Text <代码> vs>代码> .HTMLLPUT控件的值,它具有事件和其他属性)。
    但是,如果您只需要将文本信息传递回服务器,它们中的任何一个都可以完成这项工作。

    如您的示例中所定义的
    input type=“text”
    对于代码隐藏甚至都不可见,因为它缺少
    runat=“server”
    属性

    如果你真的添加了它,仍然存在差异。ASP.NET Text Box更先进,与ASP.NET模型的其余部分保持一致(例如,它具有属性<代码> .Text <代码> vs>代码> .HTMLLPUT控件的值,它具有事件和其他属性)。
    但是,如果您只需要将文本信息传递回服务器,它们中的任何一个都可以完成此任务。

    当发出页面请求时,asp:Textbox会将HTML呈现给客户端/浏览器。将ASP.NET控件(在本例中为ASP:TextBox)想象为服务器端的一段代码,当向服务器发出aspx页面请求时,它知道呈现
    HTML元素

    ASP.NET编译器在解析您的aspx页面时,只会吐出电子邮件中的
    HTML元素:对于Email2:ASP.NET编译器知道这是一个服务器控件,因为有runat=“server”标记。因此,ASP.NET编译器引用服务器上的ASP.NET程序集,读取
    的代码,并知道最终使用
    响应页面请求


    服务器端控件可以在代码隐藏页中访问。So可在代码隐藏中访问,但
    元素不可访问。在这一点上,您可以考虑在您的研究中考虑到,如果将RunAT=“Server”添加到元素中,则可以在代码后面访问。

    < P>:当页面请求被请求时,ASP:ToBox向客户端/浏览器呈现HTML。将ASP.NET控件(在本例中为ASP:TextBox)想象为服务器端的一段代码,当向服务器发出aspx页面请求时,它知道呈现
    HTML元素

    ASP.NET编译器在解析您的aspx页面时,只会吐出电子邮件中的
    HTML元素:对于Email2:ASP.NET编译器知道这是一个服务器控件,因为有runat=“server”标记。因此,ASP.NET编译器引用服务器上的ASP.NET程序集,读取
    的代码,并知道最终使用
    响应页面请求


    服务器端控件可以在代码隐藏页中访问。So可在代码隐藏中访问,但
    元素不可访问。在这一点上,你可以在你的研究中考虑,如果你将RunAT=“Server”添加到元素中,它可以在你的代码后面访问。

    你的解释是最简单和最伟大的解释。所以,就像所有的ASP.NET控件实际上都被渲染成浏览器的HTML控件一样,只是它们具有事件和其他属性,这些属性提供了比普通HTML控件更大的灵活性和控制。那么,我们可以推断HTML控件事件也可以与这些asp.net控件一起使用吗?就像dropdownlist的一次更改事件一样?@FlopScientist。每个ASP.NET控件在浏览器中呈现为HTML控件(更复杂的ASP.NET控件可以呈现为多个HTML控件-请参见GridView、Calendar、RadioButtonList等),但本质上是这样的,它们呈现为HTML控件,可以使用与标准HTML控件相同的客户端事件。例如,DropDownList在浏览器中呈现为SELECT控件,它可以使用
    onchange
    事件。您的解释是最简单和最好的。那么,是否所有asp.net控件都在浏览器的最后呈现为HTML控件,只是它们具有事件和其他属性,这些属性提供了比普通HTML控件更大的灵活性和控制。那么,我们可以推断HTML控件事件也可以与这些asp.net控件一起使用吗?比如dropdownlist的一次更改事件?@FlopScientist