用户控件,服务器控件和自定义控件之间有什么区别?

IAm*_*00B 15 asp.net user-controls controls custom-controls

在最近的一次采访中,我认为我对这个问题有合理的答案,但我对此进行了轰炸.:(

  • 这三者之间有哪些主要区别?
  • 如果前一个子弹的答案不明显,你什么时候选择一个?

Jos*_*rke 24

  • 用户控件是在Web项目中使用设计器构建的控件.它们通常仅对Web应用程序是私有的(尽管有一些方法可以将它们提供给其他项目).

  • 服务器控件是也称为Web控件的控件.这些是可重用的控件,无需设计人员的帮助即可呈现其html,它们是在Web应用程序的单独程序集中创建的,适用于将在许多不同的Web应用程序中使用的控件

  • 复合控件是Web控件的子类型,是由其他Web控件组成(组成)的控件.

我从来没有听说过自定义控件意味着你或你的团队定制的控件.它可以包括用户,Web或复合控件.


Rob*_*vey 7

用户控件是一个部分网页,其创建方式与ASP.NET中的任何其他网页相同,但它具有.ASCX扩展名,并且可以嵌入到其他ASPX页面中.

用户控件在使用它们的网页中注册,如下所示:

<%@ Register TagPrefix="UC" TagName="TestControl" Src="test.ascx" %>
Run Code Online (Sandbox Code Playgroud)

然后在他们将要使用的网页中声明它们,如下所示:

<UC:TestControl id="Test1" runat="server"/>
Run Code Online (Sandbox Code Playgroud)

自定义控件是在服务器上执行的已编译代码组件,公开对象模型,并将标记文本(如HTML或XML)呈现为普通Web窗体或用户控件.自定义控件使用C#或VB编写,并从类中派生

System.Web.UI.WebControls.WebControl 
Run Code Online (Sandbox Code Playgroud)

服务器控件是在服务器上执行并将标记呈现给浏览器的控件.用户控件和自定义控件都是服务器控件的示例.

http://support.microsoft.com/kb/893667