![]() |
|
| <%@ page language="VB" %> <script runat="server"> Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Label1.Text = "Hello " & TextBox1.Text End Sub </script> <html> <head> <title>ASP.NET Inline Pages</title> </head> <body> <form id="Form1" runat="server"> <h1>Welcome to ASP.NET 2.0!</h1> <b>Enter Your Name:</b> <asp:TextBox ID="TextBox1" Runat="server"/> <asp:Button ID="Button1" Text="Click Me" OnClick="Button1_Click" Runat="server"/> <br /> <br /> <asp:Label ID="Label1" Text="Hello" Runat="server" /> </form> </body> </html> |
| <%@ page language="VB" CodeFile="CodeBehind_vb.aspx.vb" Inherits="CodeBehind_vb_aspx" %> <html> <head> <title>ASP.NET CodeBehind Pages</title> </head> <body> <form runat="server"> <h1>Welcome to ASP.NET 2.0!</h1> <b>Enter Your Name:</b> <asp:TextBox ID="TextBox1" Runat="server"/> <asp:Button ID="Button1" Text="Click Me" OnClick="Button1_Click" Runat="server"/> <br /> <br /> <asp:Label ID="Label1" Text="Hello" Runat="server" /> </form> </body> </html> |
简化的后台代码模型的优势在于,你不必单独地在后台代码类中声明服务器控件变量。使用局部类(2.0中的新特性)允许ASPX页面中的服务器控件ID直接被后台代码文件访问。这极大地简化了后台代码页面的维护工作量。
在页面之间共享代码
尽管可以在站点的每个页面中放置代码(使用内联或者后台代码分离模型),还是可能遇到希望在站点的多个页面之间共享代码的情况。把代码复制到需要它的每个页面是一种低效率的和难于维护的方法。幸运的是,ASP.NET提供了几个让代码供应用程序的所有页面访问的方法。
代码目录
页面可以在运行时动态的编译,代码文件(例如.cs和.vb文件)也可以。ASP.NET 2.0引入了App_Code目录,它可以包含那些含有代码的独立的文件,而这些代码可供应用程序的多个页面访问。ASP.NET 1.x要求这些共享文件预编译到Bin目录中,然而App_Code目录中的代码文件将在运行时动态地编译,并供应用程序使用。把多种语言建立的代码文件放在App_Code目录中是可行的,这时候应该把它们放在不同的子目录中(在Web.config中注册具体语言)。下面的例子演示了使用App_Code目录包含一个类文件,页面会调用它。
| <%@ page language="VB" %> <script runat="server"> Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim c As New CustomClass Label1.Text = c.GetMessage(TextBox1.Text) End Sub </script> <html> <head> <title>ASP.NET Inline Pages</title> </head> <body> <form id="Form1" runat="server"> <h1>Welcome to ASP.NET 2.0!</h1> <b>Enter Your Name:</b> <asp:TextBox ID="TextBox1" Runat="server"/> <asp:Button ID="Button1" Text="Click Me" OnClick="Button1_Click" Runat="server"/> <br /> <br /> <asp:Label ID="Label1" Text="Hello" Runat="server" /> </form> </body> </html> |
| <configuration> <system.web> <compilation> <codeSubDirectories> <add directoryName="Subdirectory"/> </codeSubDirectories> </compilation> </system.web> </configuration> |
| <%@ page language="VB" %> <script runat="server"> Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim c As New CustomClass Label1.Text = c.GetMessage(TextBox1.Text) Dim c2 As New CustomClass2 Label2.Text = c2.GetMessage(TextBox1.Text) End Sub </script> <html> <head> <title>ASP.NET Inline Pages</title> </head> <body> <form id="Form1" runat="server"> <h1>Welcome to ASP.NET 2.0!</h1> <b>Enter Your Name:</b> <asp:TextBox ID="TextBox1" Runat="server"/> <asp:Button ID="Button1" Text="Click Me" OnClick="Button1_Click" Runat="server"/> <br /> <br /> <asp:Label ID="Label1" Runat="server" /> <br /> <asp:Label ID="Label2" Runat="server" /> </form> </body> </html> |
| <@ Import Namespace="MyCustomNamespace" > |
| <configuration> <compilation> <assemblies> <add assembly="System.Data, Version=1.0.2411.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> </assemblies> </compilation> </configuration> |