用户控制与服务器控制

时间:2012-06-13 10:11:20

标签: asp.net html visual-web-developer-2010

我正在尝试理解htmlasp.net

似乎(如果我错了,请纠正我!)我在我的web项目上的aspx页面上编写的代码并非都是html。相反,当用户从他们的url发出html请求时,它们是由一些“ASP.Net”编译器运行的代码(所以感谢runat server“编译器”理解非html标签,例如{{ 1}})。然后 - “编译器”使用此代码动态创建一个html页面。例如 - 这会将<asp转换为Button

这是真的吗?如果是,那么,什么是用户控件?

3 个答案:

答案 0 :(得分:4)

ASP.NET具有服务器端控件(如按钮,超链接,网格视图等)。这些都生成服务器端事件(Button1_OnClick),可以通过C#/ VB.NET代码处理。

<asp:Button ID="btnCopyText" runat="server" /> // Calls the server side btnCopyText code

public void btnCopyText_Click(object sender, EventArgs e) {

}  

HTML拥有自己的控件,由客户端的浏览器(客户端)呈现。

 <button onclick="copyText()">Copy Text</button> // Calls the copyText() function (Client Side)

ASP.NET按钮在服务器端呈现,然后作为标准HTML按钮传递给客户端(如上所示)。

自定义用户控件是由程序员创建的ASP.NET服务器端控件,它可能包含多个ASP.NET服务器端控件,如GridView和按钮)。一个例子是,当单击按钮时,它会重新加载GridView中的数据。这为ASP.NET开发人员提供了一种编写一个自定义控件并在需要时重用它而不是编写样板代码(重复相同代码)的方法。

http://msdn.microsoft.com/en-us/library/y6wb1a0e.aspx

答案 1 :(得分:2)

是的,所有asp.net控件都呈现为html,但是runat服务器告诉它服务器控件。

用户控件是一种复合控件,其工作方式与ASP.NET网页非常相似 - 您可以将现有Web服务器控件和标记添加到用户控件,并为控件定义属性和方法。然后,您可以将它们嵌入到ASP.NET网页中,作为一个单元

答案 2 :(得分:1)

asp.net是一种编程工具,可帮助您快速轻松地生成HTML代码,最终目标是完整的html页面,其中所有其他组件需要显示,如脚本,图像,ajax调用等

用户控件,就像一个渲染html的对象,但你可以多次使用它,在许多不同的页面中,或在同一页面上使用它。

例如,用户控件可以呈现图像和产品的详细信息,然后如果您在转发器中使用它,则可以使用一个控件和一个循环来渲染数据库的所有产品。

  

我在我的web项目上的aspx页面上编写的代码并非全部   HTML。

你在aspx页面上写的实际上是asp.net解析并渲染最终html页面的编程代码。 Asp.net允许你拥有代码和html以及其他文本,并使用asp.net特殊标记和声明将必须解析的部分与其余文本分开。