一个小小的疑问~

时间:2021-07-04 08:33:26
<asp:Button ID="btn" runat="server"  />

<input id="btn1" runat="server" />

这两个有什么区别吗?从性能和速度上哪个更快?

8 个解决方案

#1


貌似没什么区别吧,html的按钮作为服务器控件运行的,运行方式是一样的吧.

#2


恩,应该是一样的

#3


我只看看我不说话

#4


默认情况下,ASP.NET 文件中的 HTML 元素作为文本进行处理,并且不能在服务器端代码中引用这些元素。若要使这些元素能以编程方式进行访问,可以通过添加 runat="server" 属性表明应将 HTML 元素作为服务器控件进行处理。还可以设置元素的 id 属性,使您可以通过编程方式引用控件。然后可以通过设置属性 (Attribute) 来声明服务器控件实例上的属性 (Property) 参数和事件绑定。#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
HTML控件是正常的HTML元素,HTML服务器控件是在普通HTML元素中加入 runat=“server”,.NET服务器控件(WEB控件)是以<asp: 标签名 开始的。#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
其实这个解释已经很明了了,html控件会被作为普通文本不做解释直接输出到客户端,如果你希望html控件可以被服务器端编程引用或者访问,就需要加 runat="server" 属性(也就变成HTML服务器控件了)。#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
哪么它们和.NET服务器控件的区别在那里,其实很简单,.NET控件的主要区别是#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
.NET控件有视图模式,即客户端和服务器端交互会存储到视图模式中#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
.net控件提供更加统一的编程接口,如每个Asp.net服务器控件都有Text属性。#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
Html控件和Html服务器控件的事件处理都是在客户端的页面上(即利用JS客户端等代码处理是否返回服务器等),而Asp.net服务器控件则是在服务器上#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
.net控件可以隐藏客户端的不同,这样程序员可以把更多的精力放在业务上,而不用去考虑客户端的浏览器及设备。#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
.NET有POSTBACK回发事件,反之没有,html服务器控件只能在按钮单击后在服务器内触发事件。#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË 

#5


#6


没区别

#7


有疑问,就是有进步

#8


很简单的的验证是否有区别,

弄两个干干净净的.ASPX的页面
一个放 <asp:Button ID="btn" runat="server"  /> 
一个放 <input id="btn1" runat="server" /> 
然后在浏览,查看前端代码.

代码如下:(IE8内核解析)
这个是 <asp:Button ID="btn" runat="server"  /> 
的HTML代码



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>

</title></head>
<body>
    <form name="form1" method="post" action="Default.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMjA0OTM4MTAwNGRkHXngITYALXP688KCr5Xi0drj7Xo=" />
</div>

<div>

<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgKlnpB6ApKiqpYPnxkoMQ9GPxu0dF1CnJRUHaNXEuM=" />
</div>
    <div>
        <input type="submit" name="btn" value="" id="btn" /> 
    </div>
    </form>
</body>
</html>



这个是<input id="btn1" runat="server" /> 的代码:



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>

</title></head>
<body>
    <form name="form1" method="post" action="Default1.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJMzMzMDExNzExZGR4Cudct1PZy1QsTIuIMNN7aAtqDA==" />
</div>

<div>

<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgLllbn0BwKSotaICw52E+Nczeja6vLwEsNhr9t8rRZq" />
</div>
    <div>
    <input name="btn1" type="text" id="btn1" /> 
    </div>
    </form>
</body>
</html>


看到差别没?

#1


貌似没什么区别吧,html的按钮作为服务器控件运行的,运行方式是一样的吧.

#2


恩,应该是一样的

#3


我只看看我不说话

#4


默认情况下,ASP.NET 文件中的 HTML 元素作为文本进行处理,并且不能在服务器端代码中引用这些元素。若要使这些元素能以编程方式进行访问,可以通过添加 runat="server" 属性表明应将 HTML 元素作为服务器控件进行处理。还可以设置元素的 id 属性,使您可以通过编程方式引用控件。然后可以通过设置属性 (Attribute) 来声明服务器控件实例上的属性 (Property) 参数和事件绑定。#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
HTML控件是正常的HTML元素,HTML服务器控件是在普通HTML元素中加入 runat=“server”,.NET服务器控件(WEB控件)是以<asp: 标签名 开始的。#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
其实这个解释已经很明了了,html控件会被作为普通文本不做解释直接输出到客户端,如果你希望html控件可以被服务器端编程引用或者访问,就需要加 runat="server" 属性(也就变成HTML服务器控件了)。#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
哪么它们和.NET服务器控件的区别在那里,其实很简单,.NET控件的主要区别是#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
.NET控件有视图模式,即客户端和服务器端交互会存储到视图模式中#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
.net控件提供更加统一的编程接口,如每个Asp.net服务器控件都有Text属性。#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
Html控件和Html服务器控件的事件处理都是在客户端的页面上(即利用JS客户端等代码处理是否返回服务器等),而Asp.net服务器控件则是在服务器上#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
.net控件可以隐藏客户端的不同,这样程序员可以把更多的精力放在业务上,而不用去考虑客户端的浏览器及设备。#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË
.NET有POSTBACK回发事件,反之没有,html服务器控件只能在按钮单击后在服务器内触发事件。#ãù __Î<www.nfhot.comu„‚¶¾³¿ïZË 

#5


#6


没区别

#7


有疑问,就是有进步

#8


很简单的的验证是否有区别,

弄两个干干净净的.ASPX的页面
一个放 <asp:Button ID="btn" runat="server"  /> 
一个放 <input id="btn1" runat="server" /> 
然后在浏览,查看前端代码.

代码如下:(IE8内核解析)
这个是 <asp:Button ID="btn" runat="server"  /> 
的HTML代码



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>

</title></head>
<body>
    <form name="form1" method="post" action="Default.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMjA0OTM4MTAwNGRkHXngITYALXP688KCr5Xi0drj7Xo=" />
</div>

<div>

<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgKlnpB6ApKiqpYPnxkoMQ9GPxu0dF1CnJRUHaNXEuM=" />
</div>
    <div>
        <input type="submit" name="btn" value="" id="btn" /> 
    </div>
    </form>
</body>
</html>



这个是<input id="btn1" runat="server" /> 的代码:



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>

</title></head>
<body>
    <form name="form1" method="post" action="Default1.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJMzMzMDExNzExZGR4Cudct1PZy1QsTIuIMNN7aAtqDA==" />
</div>

<div>

<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgLllbn0BwKSotaICw52E+Nczeja6vLwEsNhr9t8rRZq" />
</div>
    <div>
    <input name="btn1" type="text" id="btn1" /> 
    </div>
    </form>
</body>
</html>


看到差别没?