服务端控件和HTML控件区别 求教!!!

二当家 2012-03-19 01:49:06
很多人用HTML控件
<input id="Text1" type="text" runat="server" />

如果写了 runat 那和服务端控件
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

有什么区别呢?

...全文
1509 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
THwudi1990 2012-03-23
  • 打赏
  • 举报
回复
只要加上了 runat=server 在用户请求页面的时候 服务器加载页面类 都是在controltree类下生成 比如提交页面的时候服务器帮助我们保存Value值 区别在与 <asp:> 控件有.net独有的 viewstate[] 进行状态保持 而html runat=server没有。
Rommend 2012-03-23
  • 打赏
  • 举报
回复

服务端控件,还要服务器解析成HTML控件,然后在传回客户端。 所以增加了服务器的压力。
cheniwantyou 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 keinshen 的回复:]
很多人用HTML控件
<input id="Text1" type="text" runat="server" />

如果写了 runat 那和服务端控件
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

有什么区别呢?
[/Quote]

只要是runat=server 那么都是服务器控件!这两个服务器控件的区别在于一个属性少一个属性多!
wangpeng047 2012-03-20
  • 打赏
  • 举报
回复
这问题比较俗了,网上关于这方面的文章有很多。给LZ看篇我曾经总结过的文章。
http://blog.sina.com.cn/s/blog_604527460100ioyi.html
wangpeng047 2012-03-20
  • 打赏
  • 举报
回复
这个问题比较俗了,网上关于这方面的内容有很多,给LZ看篇我曾经总结过的文章
http://blog.sina.com.cn/s/blog_604527460100ioyi.html
dalmeeme 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 porschev 的回复:]
引用 22 楼 dalmeeme 的回复:

引用 20 楼 porschev 的回复:
引用 11 楼 dalmeeme 的回复:

引用 10 楼 porschev 的回复:
引用 9 楼 dalmeeme 的回复:

其实两者都运行在服务器端,asp.net负责将其转换为浏览器端标记,然后由浏览器根据不同情况显示出来。


这个说法应该是有误的。。HTML控件是运行在客……
[/Quote]
对。因为楼主给出的两个就是这样。没有runat="server"的html标记当然运行在客户端喽。
porschev 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 caozhy 的回复:]

大家理解不同
Html控件(runat="server")在多数人眼中属于服务器端控件。当然,非要说用服务器控件标记的才叫服务器控件,你这么说也对。

之所以倾向Html控件不包括runat="server",主要是这样就和别的web开发平台容易统一起来。因为html控件在多数php、jsp或者别的开发者眼中就是在浏览器运行的,UI组件。
[/Quote]

就是这个意思
porschev 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 dalmeeme 的回复:]

引用 20 楼 porschev 的回复:
引用 11 楼 dalmeeme 的回复:

引用 10 楼 porschev 的回复:
引用 9 楼 dalmeeme 的回复:

其实两者都运行在服务器端,asp.net负责将其转换为浏览器端标记,然后由浏览器根据不同情况显示出来。


这个说法应该是有误的。。HTML控件是运行在客户端的。。。

其实主要是找runat="s……
[/Quote]

原来你指的是有runat="server"。。。
threenewbee 2012-03-19
  • 打赏
  • 举报
回复
大家理解不同
Html控件(runat="server")在多数人眼中属于服务器端控件。当然,非要说用服务器控件标记的才叫服务器控件,你这么说也对。

之所以倾向Html控件不包括runat="server",主要是这样就和别的web开发平台容易统一起来。因为html控件在多数php、jsp或者别的开发者眼中就是在浏览器运行的,UI组件。
dalmeeme 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 porschev 的回复:]
引用 11 楼 dalmeeme 的回复:

引用 10 楼 porschev 的回复:
引用 9 楼 dalmeeme 的回复:

其实两者都运行在服务器端,asp.net负责将其转换为浏览器端标记,然后由浏览器根据不同情况显示出来。


这个说法应该是有误的。。HTML控件是运行在客户端的。。。

其实主要是找runat="server"这个标记

Html控件和Web……
[/Quote]
Html控件(runat="server")同Web控件一样有完整的控件生命周期,并不是原样不动就送往客户端的。参考这篇文章:http://www.cnblogs.com/greatwang/archive/2008/06/06/1214934.html
ojekleen 2012-03-19
  • 打赏
  • 举报
回复
类型不同啊。
一个是:TextBox类型, 一个是HtmlInputText 具体两个有哪些区别你可以看看各类的接口或者源码。

使用HtmlInputText 优势在于在美工切页面以后样式不用考虑太多。

porschev 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dalmeeme 的回复:]

引用 10 楼 porschev 的回复:
引用 9 楼 dalmeeme 的回复:

其实两者都运行在服务器端,asp.net负责将其转换为浏览器端标记,然后由浏览器根据不同情况显示出来。


这个说法应该是有误的。。HTML控件是运行在客户端的。。。

其实主要是找runat="server"这个标记

Html控件和Web控件都是服务器控件。无论什么控件,都只能运行在服……
[/Quote]

HTML控件会当一个字符串送到字符串流,客户端再解析它,不存在什么运行在服务器端
种草德鲁伊 2012-03-19
  • 打赏
  • 举报
回复
html标签对运行在服务器端的代码来说只是普通的字符串,没有控件的概念

继承了System.Web.UI.Control的都是服务器控件, 包括System.Web.UI.HtmlControls.HtmlControl
dalmeeme 2012-03-19
  • 打赏
  • 举报
回复
Html控件(runat="server")运行在服务器端,经过服务器asp.net处理后,生成的html、css和js代码,最终在浏览器端上显示。
二当家 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dalmeeme 的回复:]

Html控件和Web控件都是服务器控件。无论什么控件,都只能运行在服务器端,客户端只能解析html、js和css等。

[/Quote]

HTML控件 根本不存在运行在哪里的问题
因为HTML控件本身就是一组可以直接解析的标签
dalmeeme 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 keinshen 的回复:]
引用 11 楼 dalmeeme 的回复:
引用 10 楼 porschev 的回复:
引用 9 楼 dalmeeme 的回复:

其实两者都运行在服务器端,asp.net负责将其转换为浏览器端标记,然后由浏览器根据不同情况显示出来。


这个说法应该是有误的。。HTML控件是运行在客户端的。。。

其实主要是找runat="server"这个标记

Html控件和Web控件……
[/Quote]
Html控件(runat="server")一样有viewstate,你可以试下。<div id="div1" runat="server"></div>
div1.InnerHtml="很长一串字符";
然后看下网页源代码。
threenewbee 2012-03-19
  • 打赏
  • 举报
回复
这好比考试卷和报纸,相对于印刷机来说,是不用区分的。只是从读者的角度来看,两者有各自的用途。所以也不存在“试卷印刷机”和“报纸印刷机”。
threenewbee 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 keinshen 的回复:]
引用 11 楼 dalmeeme 的回复:
引用 10 楼 porschev 的回复:
引用 9 楼 dalmeeme 的回复:

其实两者都运行在服务器端,asp.net负责将其转换为浏览器端标记,然后由浏览器根据不同情况显示出来。


这个说法应该是有误的。。HTML控件是运行在客户端的。。。

其实主要是找runat="server"这个标记

Html控件和Web控件……
[/Quote]
VIEWSTATE状态其实本身并不存在,它是asp.net利用html表单、cookie、服务器暂存数据等实现的一种机制。
二当家 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dalmeeme 的回复:]
引用 10 楼 porschev 的回复:
引用 9 楼 dalmeeme 的回复:

其实两者都运行在服务器端,asp.net负责将其转换为浏览器端标记,然后由浏览器根据不同情况显示出来。


这个说法应该是有误的。。HTML控件是运行在客户端的。。。

其实主要是找runat="server"这个标记

Html控件和Web控件都是服务器控件。无论什么控件,都只能运行在服务……
[/Quote]


是不是可以理解为

HTML控件比WEB控件少了渲染和VIEWSTATE状态

可以直接发送到客户端 由浏览器来解析
二当家 2012-03-19
  • 打赏
  • 举报
回复
感谢楼上的各位

获益良多啊
加载更多回复(11)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧