在ASP.NET中应该说有三种控件,html控件,的控件,还有第三种控件runat=server的HTML控件。
ASP.NET服务器控件会生成很多的冗余的代码。服务端控件是ASP.Net对HTML的封装,在C#代码中就可以用txt1.Text=‘abc’这种方式来修改input的值,ASP.Net会将服务端控件转成HTML代码输出给浏览器。服务端控件是ASP.Net非常吸引初学者、非常容易上手的东西,也是最被人诟病的东西。物尽其用,服务端控件在内网系统、互联网系统的后台部分等访问频率不高的地方用的还是很适合的。
第三种控件runat=server的HTML控件。在HTML控件的基础上添加runat="server",也是运行在服务器端的,也可以服务端使用C#代码进行操作,也会渲染到客户端,不像ASP.Net服务端控件那样高度封装,暴露的属性大部分是普通HTML属性。和ASP.Net服务端控件相比的好处是:当需要在服务器端要对控件进行操作的时候,如果控件没有被ASP.Net服务端控件封装的时候,用runat=server的HTML控件很方便,runat=server的HTML控件也会对虚拟路径(~/)、id→ClientID进行处理,所以在使用虚拟路径、UserControl中也可能会用到。
run=server的html控件的好处,中庸!
1、不像ASP.Net服务端控件那么重量级、封装的那么多,程序员可以比较好的控制生成内容的质量。
2、相对于html控件:1)能够在服务端代码中操作控件2)能够自动处理虚拟路径~3)可以处理ClientID。