ASP.NET Web Forms - 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
ASP.NET 支持三种不同的开发模式:
Web Pages(Web 页面)、MVC(Model View Controller 模型-视图-控制器)、Web Forms(Web 窗体):
什么是 Web Forms?
Web Forms 是三种创建 ASP.NET 网站和 Web 应用程序的编程模式中的一种。
其他两种编程模式是 Web Pages 和 MVC(Model View Controller 模型-视图-控制器)。
Web Forms 是最古老的 ASP.NET 编程模式,是整合了 HTML、服务器控件和服务器代码的事件驱动网页。
Web Forms 是在服务器上编译和执行的,再由服务器生成 HTML 显示为网页。
Web Forms 有数以百计的 Web 控件和 Web 组件用来创建带有数据访问的用户驱动网站。
ASP.NET Web Forms - HTML 页面
简单的 ASP.NET 页面看上去就像普通的 HTML 页面。
Hello RUNOOB.COM
在开始学习 ASP.NET 之前,我们先来构建一个简单的 HTML 页面,该页面将在浏览器中显示 “Hello RUNOOB.COM”:
用 HTML 编写的 Hello RUNOOB.COM
下面的代码将以 HTML 页面的形式显示实例:
<html>
<body bgcolor="yellow">
<center>
<h2>Hello RUNOOB.COM!</h2>
</center>
</body>
</html>
用 ASP.NET 编写的 Hello RUNOOB.COM
转换 HTML 页面为 ASP.NET 页面最简单的方法是,直接复制一个 HTML 文件,并把新文件的扩展名改成 .aspx 。
下面的代码将以 ASP.NET 页面的形式显示实例:
<html>
<body bgcolor="yellow">
<center>
<h2>Hello RUNOOB.COM!</h2>
</center>
</body>
</html>
它是如何工作的?
从根本上讲,ASP.NET 页面与 HTML 是完全相同的。
HTML 页面的扩展名是 .htm。如果浏览器向服务器请求一个 HTML 页面,服务器可以不进行任何修改,就直接发送页面给浏览器。
ASP.NET 页面的扩展名是 .aspx。如果浏览器向服务器请求个 ASP.NET 页面,服务器在将结果发回给浏览器之前,需要先处理页面中的可执行代码。
上面的 ASP.NET 页面不包含任何可执行的代码,所以没有执行任何东西。在下面的实例中,我们将添加一些可执行的代码到页面中,以便演示静态 HTML 页面和动态 ASP 页面的不同之处。
经典 ASP
Active Server Pages (ASP) 已经流行很多年了。通过 ASP,可以在 HTML 页面中放置可执行代码。
之前的 ASP 版本(在 ASP.NET 之前)通常被称为经典 ASP。
ASP.NET 不完全兼容经典 ASP,但是只需要经过少量的修改,大部分经典 ASP 页面就可以作为 ASP.NET 页面良好地运行。
用经典 ASP 编写的动态页面
为了演示 ASP 是如何显示包含动态内容的页面,我们将向上面的实例中添加一些可执行的代码。
<html>
<body bgcolor="yellow">
<center>
<h2>Hello RUNOOB.COM!</h2>
<p><%Response.Write(now())%></p>
</center>
</body>
</html>
用 ASP .NET 编写的动态页面
下面的代码将以 ASP.NET 页面的形式显示实例:
<html>
<body bgcolor="yellow">
<center>
<h2>Hello RUNOOB.COM!</h2>
<p><%Response.Write(now())%></p>
</center>
</body>
</html>
ASP.NET 对比经典 ASP
上面的实例无法演示 ASP.NET 与经典 ASP 之间任何的不同之处。
正如最后的两个实例中,您看不出 ASP 页面和 ASP.NET 页面两者之间的不同之处。
ASP.NET Web Forms - 服务器控件
服务器控件是服务器可理解的标签。
经典 ASP 的局限性
<html>
<body bgcolor="yellow">
<center>
<h2>Hello Runoob!</h2>
<p><%Response.Write(now())%></p>
</center>
</body>
</html>
ASP.NET - 服务器控件
ASP.NET 通过服务器控件,已经解决了上述的"意大利面条式代码"问题。
服务器控件是服务器可理解的标签。
有三种类型的服务器控件:
- HTML 服务器控件 - 创建的 HTML 标签
- Web 服务器控件 - 新的 ASP.NET 标签
- Validation 服务器控件 - 用于输入验证
ASP.NET - HTML 服务器控件
HTML 服务器控件是服务器可理解的 HTML 标签。
ASP.NET 文件中的 HTML 元素,默认是作为文本进行处理的。要想让这些元素可编程,需向 HTML 元素中添加 runat=“server” 属性。这个属性表示,该元素将被作为服务器控件进行处理。同时需要添加 id 属性来标识服务器控件。id 引用可用于操作运行时的服务器控件。
<script runat="server">
Sub Page_Load
link1.HRef="http://www.runoob.com"
End Sub
</script>
<html>
<body>
<form runat="server">
<a id="link1" runat="server">Visit RUNOOB!</a>
</form>
</body>
</html>
ASP.NET - Web 服务器控件
Web 服务器控件是服务器可理解的特殊 ASP.NET 标签。
就像 HTML 服务器控件,Web 服务器控件也是在服务器上创建的,它们同样需要 runat=“server” 属性才能生效。然而,Web 服务器控件没有必要映射任何已存在的 HTML 元素,它们可以表示更复杂的元素。
<script runat="server">
Sub submit(Source As Object, e As EventArgs)
button1.Text="You clicked me!"
End Sub
</script>
<html>
<body>
<form runat="server">
<asp:Button id="button1" Text="Click me!"
runat="server" OnClick="submit"/>
</form>
</body>
</html>