1.3 第一个ASP.NET应用程序
既然这么简单,那我们写一个简单的程序看看。我们有强大的集成开发工具Visual Studio,那就从在Visual Studio中新建站点开始吧。
1.3.1
创建ASP.NET应用程序
Visual Studio的IDE我们已经使用很久了,大家应该还记得如何创建Windows应用程序、控制台应用程序、类库等,本节我们首先来创建ASP.NET应用程序。打开Visual Studio,选择“文件”一“新建”一“网站”命令,在打开的如图1.13所示的对话框中可以看到我们新建网站时不一定需要指定网站路径,直接指定文件路径就可以了。位置可以指定三种类型,我们常使用文件系统,单击后面的“浏览”按钮可以帮助你找到文件夹所在位置,避免手动输入路径时产生错误。
图1.13新建网站
选好路径后单击“确定”按钮,这时我们已经新建了一个站点。当然,还必须设置开发应用程序所使用的编程语言,我们使用C#。
事实上,Visual Studio提供了4种创建Web站点的方式,它们是文件系统、本地IIS、 FTP站点和远程站点,如图1.14所示。
图1 14创建Web站点的位置选择
Ø 文件系统:这种方式允许将站点文件存储在本地硬盘的一个指定文件夹中,或者存储在局域网中的一个共享位置。这就意味着无须将站点作为IIS应用程序来创建,就可以进行开发测试等工作。如果你的计算机没有安装IIS,又要搞开发,这种方式再合适不过了。当然该方式的缺陷就是无法使用ns中的某些功能特性,毕竟开发的服务器是简化的Web服务器。一般在开发过程中使用这种方式。
Ø 本地IIS:本地IIS方式是早期的一种创建方式,比文件系统的方式稍微复杂,但可以使用IIS的高级功能,所以常常在需要做Web测试时使用。缺点是由于IIS服务只有一个进程,调试时也只能有一个用户参与调试过程。
Ø FTP站点:FTP站点方式可以在服务器上保存文件,通过FTP访问它们。这是共享环境的一种可能配置,在共享环境下,许多人可以同时使用项目。另外,还可以使用FTP设置远程编辑文件。其中,远程服务器ns有一个虚拟目录映射到FTP文件驻留的位置。FTP选项的最大缺陷是,不能使用源代码管理器(比如VSS),团队中的多个人可能对项目进行相互矛盾的改动。
Ø 远程站点:远程站点方式类似于FTP站点,所不同的是它不再使用FTP方式连接,而是使用HTTP方式。这种方式配置站点相当复杂,而且缺点很多,一般很少使用。
综上所述,我们可以根据实际需要选择适合的开发方式,我们这里使用的是文件系统方式。站点创建好后,我们发现IDE自动给添加了一个页面Default.aspx,可以看到它有两种编辑方式:设计视图和源视图。我们应该在使用Eclipse开发JSP时,见过类似的显示方式。此时如果我们单击“运行”按钮(或者按F5键),即可运行该应用程序。由于我们没有填写代码,页面全是空白。大家可以了解到,ASP.NET的开发不像JSP那样需要复杂的配置。
提示
第一次运行新建的站点时,会看到如图1.15所示的提示对话框,好在我们使用的是中文版的Visual studio.它的意思是说没有启用调试,但可以自动添加启用了调试的 Web.config文件,那再好不过了,有关Web.config文件在本书最后一章有详细的说明.现在我们只需要单击‘确定’按钮,以激活调试功能。
图1.15启用调试
1.3.2
解决方案组成
下面我们来看看Visual Studio自动产生了哪些内容。通过“解决方案资源管理器”(如图1.16所示)我们可以看到如下效果。
图1.16解决方案资源管理器
项目名称的位置现在显示的是解决方案的路径,下面还默认创建了一个文件夹和三个文件。
Ø App_Data文件夹是存放数据的文件夹。
Ø Web.Config文件是不是刚才看到过?对了,在调试时Visual Studio添加了这样一个文件。该文件是站点配置文件,可以设置是否允许调试等信息,我们还常常把一些自己用的内容放进去,当然需要依照一定的规则。
Ø Default.aspx就是我们刚才看到的那个空白页面,注意我们的代码是以.aspx为后缀名的。
Ø Default.aspx.cs文件是做什么用的呢?从图上我们知道它与Default.aspx文件还有些关系。这就是我们在讲ASP.NET的优势时所说的代码后置的文件。
提示
提到解决方案,在Winform编程中我们知道应该有一个.sln的解决方案文件,但却没有出现在我们的站点目录中。ASP.NET中没有这样的文件么?实际上,Visual Studio也自动创建了一个这样的文件,它在:
C:\Documents and Setting\你的用户名\My Document\Visual Studio 2005\Projects
目录中,注意要把“你的用户名”替换成你登录计算机的用户名,真正找不到的是项目文件,(.csproj文件)。因为微软认为站点下所有的文件都属于站点的组成部分,所以ASP.NET的新版本中去掉了站点的项目文件。
1.3.3代码后置和代码内嵌
1.代码后置
代码后置是微软的一项技术,也是我们编写ASP.NET常用的编码方式。具体方式就像我们刚才所说的页面文件( .aspx)和代码文件(.cs)两个文件相互关联构成一个页面。一般情况下,.aspx中没有代码、只有控件和HTML代码,而在.cs文件中编写相关的代码。这样做的好处就是代码和页面内容分离,使代码更清晰。
2.代码内嵌
与代码后置相对应的是代码内嵌,我们可以不使用后置的.cs文件,完全在.aspx文件中编写代码。我们只需要在创建页丽时,不选择“将代码放在单独的文件中”复选框(如图1.17所示),把代码写在<% %>之间就行了。
图1.17新建页面时选择后置代码
下面是一段采用代码内嵌方式的编码:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<script language="C#" runat="server">
string ShowHello = "张三";
</script>
<%
if (DateTime.Now.Hour > 7 && DateTime.Now.Hour < 12)
ShowHello = ShowHello+",上午好啊,挺精神的嘛。";
else if(DateTime.Now.Hour > 12 && DateTime.Now.Hour < 20)
ShowHello = ShowHello + ",下午好啊,别犯困啊。";
else if (DateTime.Now.Hour > 20 && DateTime.Now.Hour < 24)
ShowHello = ShowHello + ",这么晚了,还不回家?";
else
ShowHello = ShowHello + ",你怎么半夜出来了?";
%>
<%= ShowHello %>
</div>
</form>
</body>
</html>
|
1.3.4 控件和事件
除了代码后置这样的功能外,ASP.NET还沿用了WinForms编程中的事件驱动概念,并将很多复杂的功能封装到控件中。本节我们将使用三种控件:Label、TextBox、 Button。Label控件可以用来显示文本,它的Text属性包含了要显示的文本内容。 TextBox控件用于用户输入或显示文本,表1-1列出了TextBox控件常用的属性和事件。Button控件可以将表单提交给服务器,从而可以激活服务器端处理。
表1-1 TextBox控件常见的属性和事件
名 称。 |
类 型 |
僮 |
说 明 |
AutoPostBack属性
|
Boolean
|
true、false
|
指示如果用户更改了控件的内容,是否自动回发到服务器,默认为false |
ReadOnly属性 |
Boolean |
True、 false |
指示该控件内容是否可编辑,默认为true |
Text属性 |
string |
|
设置或者获取控件的文本内容 |
TextMode属性
|
TextBoxMode
|
SingleLine、
MultiLine、
Password :
|
控件的模式:单行、多行和密码。设置为密码时,所有的输入显示为“*”
|
TextChanged事件
|
|
|
当文本发生变化且失去焦点时触发的事件。注意该事件需要配合AutoPostBack使用,因为只有自动回发到服务器,文本 改变的事件才会执行 |
Button控件也有Text属性,它只是用来设置按钮上显示的文字。Click事件在控件单击时引发。回顾我们在WinForms编程中的方式,我们可以在设计模式下双击Button控件来添加单击事件的代码,同时在属性窗口中双击Click后面的空白,也可以添加事件的代码。
1.3.5
完整示例
讲了这么多,总该做点东西出来看看吧,现在我们编写一个问候程序,就是输入用户名,单击“确定”按钮,然后根据时间给予相应提示。编写C#代码大家都学过,非常简单,步骤如下:
(1)新建页面HelloACCP.aspx。
(2)从工具栏拖入相应控件:两个Label,一个TextBox,一个按钮Button,如图1.18所示。当然位置可以自己调整。
图1.18控件布局
在ASP. NET中,默认控件在页面上的位置是相对定位,如果想要像WinForms中那样,控件拖到哪里就在哪里显示的话,可以在选中控件的情况下,选中菜单中的布局 一 位置 一 绝对定位,即可实现位置拖动。还有一种方式就是设置所有控件默认都是绝对定位,则可以在该栏中的自动定位选项中设置所有默认为自动定位。
(3)编写事件方法。我们所要做的就是在用户输入用户名后,单击“确定”按钮,给予相应提示,那我们所要编写的事件就是单击“确定”按钮的事件。获取和设置用户控件的值也很方便,不需要像JSP那样要使用Request等方式来获取。这种方式就是常说的控件+事件的编码方式。具体代码很简单,我们只需要根据当前时间给予提示语言就可以了,代码如下:
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)
{
}
protected void btnOK_Click(object sender, EventArgs e)
{
string greeting;
switch(DateTime.Now.Hour)
{
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
greeting = "{0}同学你好,今儿这么早啊!";
break;
case 12:
case 13:
case 14:
case 15:
case 16:
case 17:
case 18:
greeting = "嘿,{0}同学,别再打瞌睡了,老板来了!";
break;
case 19:
case 20:
case 21:
case 22:
case 23:
greeting = "{0}同学自言自语道:辛苦了一天,该好好休息了。";
break;
default:
greeting = "快跑啊,夜猫子 {0} 来了!";
break;
}
string message = string.Format(greeting, txtName.Text.Trim());
lblMessage.Text = message;
}
}
|
1.4体会ASP.NET的快速开发特性
刚才的例子比较简单,主要目的是让大家体会一下ASP.NET的控件+事件的编程方式,以区别于JSP的方式,因为同样的功能,在JSP中也多不了多少代码。现在我们做一个显示学员信息列表的页面,除了显示,还要有排序、分页的功能,如图1.19所示。
图1.19显示学员信息列表
会不会很复杂?事实上,我们只需要几分钟时间就能完成该页面的开发。
1.4.1将学员信息表拖入页面中
大家学习WinForms时学过“服务器资源管理器”,如图1.20所示。可以在这里添加连接,指向MySchool数据库,找到学员信息表并将其拖入页面,如图1.21所示。
图1.20服务器资源管理器
图1.21 将学员信息表拖入页面
1.4.2显示内容的选择
我们把学员信息数据表拖入页面后,所有的字段都显示出来了,但我们只想显示登录名、姓名、性别和地址,怎么办呢?我们可以在智能标记中选择“编辑列”,如图1.22所示,打开“字段”对话框。
图1.22编辑列
在“字段”对话框可以设置显示的内容、标题以及显示顺序,如图1.23所示。左下侧上下的箭头按钮可以调整显示顺序,X 按钮的作用是删除。当选中某字段时,在右侧的字段属性中可设置相应属性。此时我们只需要修改显示的标题头即可,即在 HeaderText栏的属性值中填写对应的中文标题。
图1.23 “字段”对话框
1.4.3设置分页和排序
显示学员信息列表一般内容比较多,需要设置分页。JSP中分页需要很多编码工作,而我们这里只需要简单地设置一下就可以了,如图1.24所示。
就这么简单,你是不是觉得少了些东西?还没有设置一页显示多少条呢,我们可以通过属性栏中的分页设置进行设置,如图1.25所示。AllowPaging属性是设置是否打开分页功能,PageIndex设置的是当前显示第几页,0页是第一页,PageSize属性是设置每页显示多少条,默认是10条。
图1.24设置分页
图1.25分页和排序
可以看到,在设置分页时还有个“启用排序”复选框,启用排序就是在单击标题头时,比如单击“用户名”时,就会按照用户名所对应的字段进行排序。
最后一步,我们希望这个页面显示得好看些,找个美工美化一下?太麻烦了,Visual Studio提供了好多样式,可以方便的套用,如图1.26和图1.27所示。
图1.26选择“自动套用格式”命令
图1.27自动套用格式
好了,现在我们看看运行效果,如图1.28所示。
图1.28运行效果
我们的页面完成了,这期间我们没有编写一行代码,不仅实现了显示、排序、分页的功能,还有不错的显示效果,这就是使用ASP.NET开发的简便之处。
分享到:
相关推荐
asp.net chapter1 ASP.NET第一章节里的第一个习题
ASP.NET程序设计 第1-2章是很全面地。
Web程序设计--ASP.NET实用网站开发课后填空题,是非题,选择题答案
完整word版-ASP.NET开发大全第1章.ASP.NET-3.5与开发工具.doc
ASP.NET第一步:基于C#和ASP.NET 2.0---配套源码大全 附带了很多整理好的知识点, 很实用
通过本MyPetShop源代码掌握ListControl类控件与数据源的绑定方法;熟练掌握GridView控件的应用;掌握DetailsView控件的应用。设计并实现一个网上购物网站
虽然说学习ASP.NET不需要任何ASP基础,但是我觉得如果大家ASP不会,还是先看一下【十天学会ASP教程】,大家所需要了解的不是ASP的程序怎么写,而是怎么构建服务器,怎么使用HTML表单,同时对SQL语句有一个基础和理解...
Aspnet-ASP.NET-Core-CMS.zip,世界上第一个asp.net核心cmsshree ram cms-世界上第一个asp.net核心cms,asp.net是一个开源的web框架,用于使用.net构建现代web应用和服务。asp.net创建基于html5、css和javascript的...
ASP.NET程序开发范例宝典(C#)(第3版)源代码 1-15章 明日科技 王小科 赵会东 编著 人民邮电出版社 2012年 5月 大小:256MB 压缩后为21.7M
本书详细阐述了开发ASP.NET Web应用程序的基础应用,从ASP.NET第一个程序的开发实践、JavaScript基础理论到内置对象、服务器控件、数据库操作技术、数据绑定技术、数据控件、数据验证技术,再到面向前台外观技术的...
第一章 .NET基础及C#基本语法 第二章 表达式、运算符与分支结构 第三章 循环结构 第四章 阶段项目(一) 第五章 阶段项目(二) 第六章 使用ADO.NET连接数据库 第七章 使用ADO.NET操作数据库 第八章 使用...
ASP.NET入门的很好资料。里边包含大量源码。
1.2 第一个ASP.NET 2.0网站 2 1.2.1 创建网站 2 1.2.2 设计网站 3 1.2.3 通过预编译发布网站 5 1.3 ASP.NET 2.0必须具备的HTML知识 7 1.3.1 利用表单提交数据 8 1.3.2 使用表格进行布局 9 1.3.3 超级链接 10 1.3.4 ...
asp.net程序设计(C#)版课后题答案 编译运行通过 第7章课后习题答案
光盘内容。购买地址:http://auction1.taobao.com/auction/item_detail-0db2-ccd1e4fe3437e6c93a1aa122bdd94c47.jhtml
第1部分 .NET应用开发基础 第1章 应用开发体系与环境配置,介绍了应用程序开发体系,常用开发架构,.NET的结构及战略,ASP.NET+SQL Server的开发环境配置。 第2章 C#程序设计基础,介绍了C#语言...
ASP.NET网页设计与网站开发-源程序第1部分.rar ASP.NET网页设计与网站开发-源程序第2部分.rar ASP.NET网页设计与网站开发-源程序第3部分.rar
本章介绍如何创建您的第一个简单的 ASP.NET 页面。 ASP.NET 服务器控件 本章介绍 ASP.NET 服务器控件。 ASP.NET 事件 本章介绍一些 ASP.NET 事件句柄。 ASP.NET Forms ASP.NET WEB 表单 本章介绍 ASP.NET 的 ...
asp.net 程序开发 范例宝典 第九章到第十一章 光盘资料