This article is currently in the process of being translated into Chinese (~96% done).
CodeBehind
我们的第一个例子运行没问题,但是我们违反了一个编程规则:显示和代码隔离。你可能已经注意到我们在我们用代码块(使用<% %>)在显示部分加入了C#代码。在这个代码块中我梦使用了label。在小型的网站, 像这个例子,这样用没什么问题。但是如果在大型网站,这样做会有很大的问题。像用比较复杂的连接:HTML 。如果你再加入一些JavaScript 和CSS,你的网页会变得很乱。这已是微软引入代码页(CODEBehind)的原因.CodeBehind是一项技术,它让你把显示(HTML,CSS等)和代码(C#,VB.NET等)分开。那么把第一个例子中的代码块删除,然后保存。
我们之前说过,VS创建了一个叫Default.aspx.cs的文件。如果你在Solution Explorer中没有看到,就点击 Default.aspx文件边上的加(“+")号。然后打开这个文件。如果你以前没用过.NET或其它非网页编程语言,可能会感到茫然。因为这个文件一点也不像HTML. 我会解释这个教材的不同部分,不久之后希望你也会觉得 CodeBehind是个很好的工具。下面就是这个文件的样貌。
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
就目前而言,文件的顶端部分和我们关系不是很大。这部分就是用using关键词把一些命名空间(namespace)包括进来。这些命名空间要在这个文件中用到。因为这是ASP.NET 教材,不是专门的C# 教材, 我不会对这个部分解释太深。之后, 我们有一个类(class)。类是面向对象编程的概念的一部分。现在很流行面向对象编程, 特别是像Java和C#这样的语言。OO(面向对象)是非常复杂的课题。在这个教材中我们也不解释OO。
这个类(class)的名字是“_Default”, 冒号(:)告诉我们这个类(class)继承于Page类(class)。Page类包含在System.Web.UI 命名空间中。 这表示我们的页面不用写代码已经可以做很多事情了。因为它继承了其它类的方法和属性。所有ASP.NET 页面都继承于Page类,或继承于其它继承于Page类的类。
这个类里面唯一的方法是Page_Load。每次页面加载时都会调用这个方法。那我们就利用它一下, 在这个方法中设定文字。我们可以使用跟前面一模一样的一行代码, 当然不用代码块标签。在符号 { 和 } 之间加上那行代码:
HelloWorldLabel.Text = "Hello, world!";
这就可以了。按F5来运行这个项目, 看看像什么样。这个页面跟以前完全一样, 不同的只是我们第一次使用了CodeBehand。然而这个例子开始变得陈旧乏味了。下一张我们来看看更有趣的东西。