Introduction

The main difference between HTML controls and ASP.Net controls is HTML controls never uses runtat="server" attribute to the tag. We declare HTML controls in a different way than we declare standard ASP.NET controls. The ASP.NET Framework enables us to take any HTML tag (real or imaginary) and add a runat="server" attribute to the tag. The runat="server" attribute converts the HTML tag into a server-side ASP.NET control. For example, the code given below contains a <span> tag, which has been converted into an ASP.NET control.

<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Sub Page_Load()
timenow.InnerText = DateTime.Now.ToString("T")
End Sub

</script>
<
html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>HTML Controls vs ASP.Net Controls</title>
</head>
<
body>
<form id="form1" runat="server">
<div>

System Time :
<span id="timenow" runat="server" />

</div>
</form>
</body>
</
html>

Notice that the <span> tag given above looks just like a normal HTML <span> tag except for the addition of the runat="server" attribute. Because the <span> tag is a server-side HTML control, we can program against it. In above code, the current date and time are assigned to the <span> tag in the Page_Load() method. The HTML controls are included in the ASP.NET Framework to make it easier to convert existing HTML pages to use the ASP.NET Framework.