天天看点

.net 02

高效网站总结:

1.            线程

2.            高速缓存

3.            Master页面

4.            主题和Skin

5.            站点导航

6.            个性化

7.            成员和角色管理

8.            Portal Framework 和 Web Part

9.            Web服务

10.     AJAX

11.    MVC

细节:

URL映射

server.Transfer(URL)

web.config urlMappings

UrlRewriter.NET         [W1]         web.config配置

Page指令的 MaintainScrollPositionOnPostBack   刷新页面时返回原来的位置

asp.net 3.5高级编程目录:

1.            应用程序和页面框架

2.            服务器控件和客户端脚本

3.            Web服务器控件

4.            验证服务器控件

5.            使用Master页面

6.            主题和Skin

7.            .NET3.5中的数据绑定

8.            使用ADO.NET管理数据

9.            使用LINQ查询

10.     使用XML和LINQ to XML

11.     IIS7.0开发

12.     提供程序模型概述

13.     扩展程序模型

14.      站点导航

15.      个性化

16.     成员和角色管理

17.     Portal Framework 和 Web Part

18.     用ASP.NET进行HTML和CSS设计

19.     ASP.NET AJAX

20.     ASP.NET AJAX控件工具集

21.     状态管理

22.     高速缓存

23.     高度和错误处理技术

24.     文件I/O和流

25.     用户控件和服务器控件

26.     使用业务对象

27.     建立和使用服务

28.      本地化

29.      配置

30.      测试

31.      管理

32.      打包和部署asp.net应用程序

附录A 迁移asp.net项目

附录B asp.net终极工具

asp.net 3.5高级编程: (ASP.NET高级编程(第5版) 清华出版)

第一章      应用程序和页面框架

1.            内嵌编码模式

2.           后台编码模式

11个指令

<%@ Page  AutoEventWireUp= [W2] Inherits= [W3] "_Default" %>

<% @  Page  Language="c#"  ResponseEncoding ="gb2312"%>          設定目前 HttpResponse 物件的編碼語言。

<% @  Page  Language="c#"  CodePage ="gb2312"%>          设置当前 Page 的代码页标识符。

MaintainScrollPositionOnPostBack 获取或设置一个值,该值指示回发后是否将用户返回到客户端浏览器中的同一位置。此属性替换已过时的 SmartNavigation 属性。

<%@ Page  Import Namespace=" " %>

在web.config文件完成这个任务:

<namespaces>

<add  namespace=" " >

</namespaces>

<%@OutputCache  Duration="180" VaryByParam="None"  %>

Duration属性指定这个页面存储在系统调整缓存中的时间(秒)

<%@  Reference  VirtualPath=" "  %>

另一个.net页面或用户控件应当与当前活动的页面或控件一起编译

<%          %>                   输出指令

<%@          %>                   处理指令

<%@Page  %>                   特定属性,仅用在aspx.文件中,一个网页仅能使用一个@Page指令

<%@Control  %>

<%@Import  %>

<%@Implements interface ="in   " %>

<%@Register  %>

<%@Assembly  %>

<%@Master  %>

<%@PreviousPageType  %>

<%@MasterType  %>

<%@OutputCache  %>

<%@Reference  %>

主页面事件的 引发事件 :

@PreInit

@Init

@InitComplete

@PreLoad

@Load         if(!IsPostBack)

@LoadComplete

@PreRender

@PreRenderComplete

@UnLoad

应用程序文件夹 (搜索: ASP.NET 网站布局 )

处理 回送:

if(Page.IsPostBack == true) {  }

if(!Page.IsPostBack ){  }

跨 页面的 传送 :PostBackUrl  PreviousPage.FindControl         DEMO

第二页面使用从第一个页面中获得的属性  [W4]

(搜索: 确定调用 ASP.NET 网页的方式 )

确定请求是否来自Page1.aspx还是有人直接单击了Page2.aspx  IsCrossPagePostBack 与asp.net 1.0/1.1中的IsPostBack属性类似  DMEO

使用内置的提供程序  DEMO

使用自己

http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

下载页面:

http://sourceforge.net/projects/urlrewriter/files/

  true指定页面事件自动触发

默认为true

  指定编译页面时绑定到页面上的类名

  要使用PreviousPageType指令

这个新指令允许使用VirtualPath属性指向Page1b.aspx

之后就可以在PreviousPage属性中通过IntelliSense查看Page1.aspx

方法一: 要获得前一个页面传送过来的控件值,只需创建此控件类型的一个实例,并用 PreviousPage 属性中的 FindControl 方法填充此实例

DEMO

方法二: 从第一页面中获取控件值的另一种方法是创建此控件的属性,如第一页 DEMO   第二页 DEMO

注意 : 在从页面传送另一个页面时,并不限于在第二个页面上处理回头的内容。实际上,还可以在Page1.aspx上为按钮添加一个OnClick事件和一个方 法,再为PostBackUrl属性指定一个值。然后就可以处理Page1.aspx上的回送,再移动到Page2.aspx上。

第一章 服务器控件和客户端脚本

HTML服务器控件

Web服务器控件

所有的控件都继承了一个特定的基类 (webControl)

有的派生于Control类

HTMl服务器控件都使用一个派生自HtmlControl基类(System.Web.UI.HtmlControl;)的类

把html元素转换为控件:         runat = "server" 

或者右击此元素,从菜单中选择Run as server control

就必须包含id属性

HtmlControl 基类

基类 HtmlContainerControl [W1] 用于一些HMTL类,这些类主要包含可以包含在单个节点中的HTML元素。例如,<img><input><link>元素用于派生HtmlControl类的类。

其他HTML元素,例如<a><form><select>,需要一对开闭标记。这些元素使用派生于 HtmlContainerControl类 的类

所有的HTML类         [W2]         (搜索:System.Web.UI.HtmlControls 命名空间)

使用 HtmlGenericControl 类: [W3]

通过 javascript 处理页面和服务器控件 

<body οnlοad=" javascript :document.forms[0]['TextBox1'].value=Date();">  DEMO

使用 Page . ClientScript 属性在.net页面上注册使用 javascript 函数        

RegisterClientScriptBlock DEMO

更多的方法和属性可通过ClientScript对象(它引用了System.Web.UI.ClientScriptManager的一个实例)来获得。 [W4]

RegisterClientScriptInclude 方法可以在页面上注册脚本.js 文件 DEMO

客户端回调 (类似ajax) aspx DEMO   cs DEMO

带一个参数的回调功能        aspx DEMO  cs DEMO

第二章 Web服务器控件

Label          AccessKey快捷键          AssociatedControlID绑定其他控件

Literal          Mode="Encode" 输入HTML编码

TextBox          TextMode

Focus()方法         

派生于WebControl基类的服务器控件,都可以使用WebControl的Focus方法(如: TextBox )

TextBox1.Fouce();          //页面加载时,光标已经位于文本框中

OnTextChanged()方法

DEMO          给TextBox控件添加AutoPostBack属性,true

使用 AutoCompleteType 属性  允许对窗体应用 自动完成 功能

Button

CausesValidation ="False"          此按钮不引发验证过程

CommandName =" Button_Command "                   让多个按钮来处理单个事件

OnClientClick 属性,指向客户端函数  DEMO

PostBackUrl          跨页面传送

LinkButton

ImageButton    [W5]

HyperLink                   ImageUrl [W6]

DropDownList   ListBox [W7] CheckBoxList   RadioButtonList 控件可以从控件的集合中可视化地                   删除数据项,而且可以操作未显示在服务器端代码中的项 DEMO

CheckBox                   if( CheckBox 1.Checked == true)

Calendar         

选择一个日期          [W8]          从选项提取一个日期范围

控制日历中的日期如何展示         

AdRotator                   广告 XMLDemo

Panel    HorizontalAlign 对齐  ScrollBars  Direction (把滚动条放在Panel控件的哪边)

PlaceHolder          DEMO

BulletedList          BulletStyle 列表显示样式

BulletStyle ="CustomImage" BulletImageUrl ="~/myImage.gif"   //用图像作为项目符号

DisplayMode ="LinkButton"   //第项变成超连接 [W9]

动态填充BulletedList服务器控件

HiddenField                  

FileUpload         

指定正确的ASP.NET 权限 给上传文件         

文件大小的 限制  web.config中修改httpRuntime (要位于<System.web>节点间)默认为4MB

maxRequestLength          指定发送给服务器的请求的大小 KB

executionTimeout          指定在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。

DEMO    SaveAs  PostedFile.FileName  PostedFile.ContentLength

给 服务器上传多个文件 HttpFileCollection  Request.Files

把上传的文件放在 Stream 对象中          DEMO   FileContent

把文件内容从 Stream 对象移动到 Byte 数组中          DEMO

MultiView                            DEMO

Wizard                   DEMO    在控件内建立窗体

HeaderText ="标题"

WizardStep

AllowReturn ="False" 不能向后导航包含此属性的已查看过的步骤         

StepType ="Finish"

ImageMap                   指定可单击的图像部分

第三章 验证服务器控件  Page.IsValid

ErrorMessage ="must enter  name" Text ="*" 两属性区别

foreach(BaseValidator bv in Page.Validators)

关闭 客户端验证功能:

DEMO   EnableClientScript="false"

DEMO2

为错误通知使用 图像 和 声音 :

DEMO          使用图像 Text ='< img src="01.gif">'

DEMO          使用声音 Text ='< bgsound src="12.wav">'

使用 验证组 : DEMO   .net 3.5 新属性 

ValidationGroup ="Login"   不仅验证控件有这个属性, Button 服务器控件也有

不通过验证的 自动获得焦点: SetFoucOnError="True"

RequiredFieldValidator          检查是是否输入了信息  DEMO

InitialValue 属性                   指定文本元素的初始值,并要求用户更改其值

要求改变初始值,且同时禁止空白条目,用到两个控件 DEMO

验证下拉列表 DEMO         

CompareValidator                   可以比较两个窗体元素,也可以比较窗体元素包含的值与指定的常量。例如,可以指定窗体元素的值必须是一个整数,且大于指定的娄。也可以要求值必须是字符串,日期或其他类型  Operator : 大于 小于 等于

根据其他 控件 来验证                   DEMO

根据 常量 来验证                   DEMO   Type ="Integer"

DEMO2 ValueToCompare="18" Operator="GreaterThan"//大于19

RangeValidator                            根据一个数字范围或字母范围检查用户的输入

DEMO   MaximumValue ="40" MinimumValue ="30"

DEMO   检查日期  Type ="Date"

RegularExpressionValidator          检查用户的输入是否匹配正则表达式定义的模式,电子邮件,电话等            DMEO   ValidationExpression ="/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*"

CustomValidator                            使用定制的验证逻辑检查用户的输入

使用客户端验证                   DEMO   ClientValidationFunction ="validateNumber"

使用服务端验证                   DEMO

联合使用客户端和服务端验证          DEMO

ValidationSummary                   在页面的一个特定位置显示验证器的所有错误消息

DEMO         

DMEO2   ErrorMessage ="must enter  name" Text ="*"

DEMO3   使用对话框报告验证错误 

ShowSummary ="False" 表示带项目符号的错误列表不显示出来

ShowMessageBox ="True"

第四章 使用Master页面

以 编程 方式将 Master 页面赋予内容页面 Page_PreInit  DEMO

Web .config文件指定Master页面         

< system.web >

< pages    masterPageFile = " ~/MasterPage.master " >

</ pages >

</ system.web >

只把 Master页面应用于一个页面子集(例如包含在应用训育特定文件夹中的页面)

< location path = " AdministrationArea " > [W10]

< system.web >

< pages    masterPageFile = " ~/MasterPage.master " >

</ pages >

</ system.web >

</ location >

Master页面的嵌套   MasterPageFile

全面页面标题

使用Master页面中的控件和属性

获取内容页面中Label控件的Text值   使用Master页面提供的FindControl方法 获取页面上的控件

把Master页面上的服务器控件设置为公共属性,FindControl找不到控件时 就不易出错 DEMO

重写Master页面上的Label控件的一个属性 DEMO

覆盖Master页面中属性的内容页面   PageHeadingTitle

特定浏览器的Master页面   Mozilla:MasterPageFile=

事件的触发顺序:

Master页面子控件的初始化:先初始化Master页面包含的所有服务器控件

内容页面子控件的初始化:初始化内容页面包含的所有服务器控件

Master页面的初始化:初始化Master页面

内容页面的初始化:初始化内容页面

内容页面的加载:加载内容页面(这是Page_Load事件,后跟Page_LoadComplete事件)

Master页面的加载:加载Master页面(这也是Page_Load事件,后跟Page_LoadComplete事件)

Master页面子控件的加载

内容页面子控件的的加载

高速缓存Master页面:

<%@  OutputCache  Duration = "10" Varybyparam="none" %>

这会有服务器的内存中把页面缓存10秒,可以用于包含不会很快过时的页面

此指令只能用于 内容 页面

ASP.NET AJAX  和 Master页面:

必须把 ScriptManager 控件放在Master页面上 DMEO

一个页面上只能有一个 ScriptManager 控件

直接新建立 AJAX  Master页面

通过Master页面包含js脚本 DEMO  <asp:ScriptReference Path=

如果内容页面还需要使用 Ajax 功能,就需要使用位于Master页面的 ScriptManager 控件

可使用 ScriptManagerProxy 控件访问Master页面上的 ScriptManager 控件  

此页面内容使用 ScriptManagerProxy 添加额外的脚本   DEMO

第五章 主题和Skin

主题文件          DMEO

主题应用于整个应用程序                   DEMO

SkinId

EnableTheming = "false"                   //不把主题应用于此控件上

可以使用(如Panel控件)封装其他控件,再把其设置 EnableTheming

Page指令也可以

优先采用Master页面的 EnableTheming 设置

< asp : TextBox ID ="TextBox1" runat ="server" BackColor ="#003300"></ asp : TextBox >

如果Page指令使用 Theme 属性来指定主题,主题会重写 BackColor ,如果使用 StylesheetThele 属性,本地设置的属性会不变

.skin文件 与.aspz页面上的常规控件定义一样,也包含runat = "server"

控件的skin版本中没有指定ID属性

在主题文件夹建立 Images 文件夹,放置图片

在 TreeView 控件中使用 theme 文件夹中的图像          DEMO

WebParts 控件用于建立入口 合并 theme 文件夹中的图像  DEMO

CSS中直接使用图像 DEMO

服务器控件的多个版本 SkinID="TextboxDotted"          DMEO

而默认的skin是文件中一个没有SkinID属性的Skin

编程使用主题:

编程指定页面的主题          DEMO

必须在页面上静态控件的Page_PreInit事件触发之前设置Page属性的主题,

如果使用动态控件,就应把此控件加到Controls集合中之前,设置Theme属性

编程指定控件的SkinID          同样,也是在代码Page_PreInit事件中或之前使用这个属性

禁止给定制控件应用主题          [Themeable(false)]          DEMO

禁止对定制控件上的 属性 应用主题          DEMO

把一个主题定义应用于定制控件  要把Themeable属性设置为true  DEMO

改变定制控件中的属性          DEMO

第六章 .NET3.5中的数据绑定

所有的数据源控件都派生于 DataSourceControl 类,而DataSourceControl类派生于 Control ,实现了 IDataSource 和 IListSource 接口

也就是说,虽然每个控件都使用特定的数据源,但所有的数据源控件共享一组基本的 核心 功能。这也说明,很容易根据特定数据源的结构创建定制的数据源控件

控件名 说明
SqlDataSource

允许访问支持ADO.NET数据提供的所有数据源

ODBC/OLE DB/SQL SERVER/ORACLE/SQL SERVER CE

DataSourceMode属性:

(告诉控件,在检查数据时,是使用DataSet还是使用DataReader)

DataReader:只前向的只读光标, [W11]

DataSet:能执行过滤,排序或分布等其他操作,控件的调整缓存功能

使用SelectParameters过滤数据 [W12] :

用于在运行时修改从查询中返回的数值

(好像可视化修改SelectQuery参数)

ConflictDetection属性:

告诉控件在更新数据时使用什么样式的冲突检测。如果多个用户尝试修改相同的数据,它确定了执行什么操作。

更新数据后,检测并发错误 DEMO

用数据源事件处理数据库错误: DEMO

LinqDataSource 使用Linq查询访问不同类型的对象
ObjectDataSource 对业务对象或其他返回数据的类执行特定的数据访问 要新建xsd数据集
XmlDataSource

< asp : XmlDataSource ID ="XmlDataSource1" runat ="server"

            DataFile ="http://msdn.microsoft.com/rss.xml" XPath ="rss/channel/item">

        </ asp : XmlDataSource >

SiteMapDataSource 对站点地图提供程序所存储的web站点进行特定的站点地图数据访问
AccessDataSource

配置数据源控件的高速缓存功能: EnableCaching ="True"   CacheDuration=" Infinite "

除了SiteMapDataSource控件外,调整缓存自动内置于.net所有的数据源控件中。

所有的数据源控件(除SiteMapDataSource外)都可以创建基本的高速缓存策略,包括调整缓存的方向、期限策略和关键字依赖

提示:只有把DateSourceMode属性设置为DataSet,才能使用 SqlDataSource 控件的高速缓存功能。如果此属性设置为 DataReader ,控件就会抛出一个NotSupportedException

高速缓存的期限可以设置为特定的时间长度,例如3600秒(60分),也可以把它设置为 Infinite ,使高速缓存的数据永远不过期。

存储连接信息: web.config

在运行时修改连接字符串属性          DEMO

使用ConnectionStringBuilder动态建立连接字符串,并把它们保存到web.config文件中  DEMO

使用绑定的列表控件和数据源控件:

GridView

使用 EmptyDataText t [W13] 和 EmptyDataTemplate 属性

编辑其行数据  (给控件添加UpdataCommand属性) 在其数据源 更改高级SQL生成选项

DetailsView

ListView

FormView

其他数据绑定控件:

DropDownList

ListBox

RadioButtonList

CheckBoxList

TreeView

Ad Rotator

Menu

内部数据绑定语法:

3.5中的语法 内部数据绑定的内容基本没变,但语法较简单,

<%#  Container.DataItem("Name")   %>

<%#  Eval("Name")   %>

<%#  Eval("HireDate","{0:mm dd yyyy}")   %>

双向绑定 <%#  Bind("Name")   %>   支持数据的读取和定入

新的bind方法应在控件 GridView DetailsView FormView 中使用,这些控件能自动更新数据源

表达式的额外功能:

<%#  "232323232" + Eval("Name")   %>

<%#  DoSomeProcess(Bind("Name"))   %>

XML数据绑定:

<%  XPathBinder.Eval(Container.DataItem,"emplotees/employee/Names")  %>

<%  XPath("emplotees/employee/Names")   %>

<%          XPath("emplotees/employee/Date","{0:mm dd yyyy}")          %>

返回匹配XPath查询的一个节点列表

<%          XPathBinder.Select(Container.DataItem,"employees/employee")          %>

或者使用缩写<%  XPathSelect("employees/employee") %>

第七章 使用ADO.NET管理数据

ADO.net连接Sql Server 数据库通过 SqlConnection 对象 来实现

ADO.net连接 Access 数据库通过 OleDbConnection 来实现数据库连接 [W14]

Connection           DEMO          使用web.config文件中的连接字符串 DEMO

Command           DEMO          [W15] select语句

DataAdapter           数据适配器 DEMO    select updata delete竺语句                   

DataReader          DEMO   ExecuteReader

DataSet  DataTable  

从DataReader中加载DataTable  DEMO

访问类型化的DataSet中的一个字段 DMEO

使用参数:

有助于防止可能的SQL注入攻击 DEMO

参数插入数据库          DMEO  10-5.aspx.cs         10-5.aspx

用 OracleClient 对象连接Oracle数据库  DMEO [W16]

命令的异步执行:

要使用.net 2.0中的异步处理,需要给连接字符串添加 Asynchronous Processing = true;

SqlCommand类的异步方法:

BeginExecuteNonQuery

EndExecuteNonQuery。。。。包括其他的重载方法

BeginExecuteReader

EndExecuteReader.......

IAsyncResult接口:

SqlCommand类的所有异步方法都返回一个对象的引用,此对象实现了 IAsyncResult 接口

AsyncCallback

SqlCommand类的一些异步方法接收一个AsyncCallback类的实例

WaitHandle类

ADO.NET 中异步处理的方式:

poll方式                   DEMO

Wait方式                   DEMO   使用System.Threading. WaitHandle 类的 WaitOn 方法

使用多个等待句柄  最好的

组合使用多个等待句柄和MARS  DMEO

使用WaitAny方法处理多个异步进程  DMEO

回调方式  DMEO

第八章 使用LINQ查询

LINQ to Objects        其功能位于System.Data.Linq程序集中

传统 的查询方式:          Movie类 DEMO 

生成一列Movie对象,并绑定到GridView上 DEMO

过滤列出的Movie对象          DEMO

对Movie对象列表进行分组和排序          DMEO

用 LINQ 替代传统 查询 :

基本的LINQ查询的投射                   添加LINQ命名空间 demo

创建查询          DEMO

创建定制投射          DMEO

创建定制投射的字段名称          DEMO

控件对象的排序          DEMO

查询过滤器          DMEO

数据分组                   DEMO

其他数据运算符 Count MIn Max等          DEMO

连接                   DEMO

分页                   DEMO

LINQ to XML (或XLINQ)

.net framework中大多数XML功能都位于System.Xml命名空间中,但XML对整个Framework的影响还包括System. Data 和Sysem. Web 命名空间

XML demo [W17]

查询XML数据文件          DEMO

映射XML元素          DEMO

连接XMl元素                   DEMO

XML  DEMO   DEMO

XSD  DEMO

LINQ to SQL (或DLINQ)

会自动把生成的类显示为单数形式

LINQ to SQL中查询Movie数据                   DEMO

把查询写到输出窗口中                   DEMO

分组                   DEMO

用视图查询          DEMO

从存储过程选择数据                   DEMO          简单的存储过程

使用LINQ插入数据            InsertOnSubmit          InsertAllOnSubmit  DEMO

更新数据                   DEMO

删除数据                   DEMO

第九章 使用XML和LINQ to XML

用XmlReader处理XML          DEMO

XDocument处理XML [W18]          DEMO

用XmlReader验证XML          DENO

用NameTable 优化XmlReader          DEMO

从XML中提取.NETCLR类型

使用XmlReader.ReadElementContentAs   DEMO

用XmlWriter创建XML 用XmlWriter输出bookstore          DEMO

用XPathDocument和XPathNOdelterator查询XML          DEMO

用XPath表达式查询XDocuments          DEMO

XmlDataSource控件          DMEO

第十章 IIS7.0开发

第十一章 提供程序模型概述

.net 3.5的新系统要求有较高级的状态管理,这些系统包括:

成员

角色管理

站点导航

个性化

健康监控Web事件

Web Part个性化

配置文件保护

ASP.NET配置(web.config)无法连接到SQL Server 数据库的解决方法

配置SQL Server 2005 以允许远程连接

默认情况下,这些系统只能使用新的sql server express 版本的文件(.mdf),不能与比较成熟的sql server版本一同使用,如sql server 7  2000  2005等

设置提供程序

>aspnet_regsql.exe  -A  all  -E

在web.config文件中修改连接字符串,以使用sql server 2005          DEMO

修改通过配置使用的SQL server DMEIO  这样 sql 2005实例就是一个可用于应用程序的的提供程序了

Membership提供程序   这两个成员提供程序继承了MembershipProvider基类

System.Web.Security.SqlMenbershipProvider                   使 用成员系统连接sql server 2000/2005和新的express版本。默认的提供程序是SqlMenbershipProvider实例。在应用程序服务器上,每个 ASP.NEtT应用程序的默认声明位于machine.config文件中,这文件位于../Framework/v2.0.50727/CONFIG 目录中  DEMO

System.Web.Security.ActiveDirectoryMembershipProvider          使用成员系统连接Microfost Active Directory

Role提供程序         

System.Web.Security.SqlRoleProvider                   连接角色管理系统和SQL Server 2005 DEMO

System.Web.Security.WindowsTokenRoleProvider

System.Web.Security.AuthorizationRoleProvider

SiteMap提供程序

System.Web..XmlSiteMapProvider

SessionState提供程序

Web事件提供程序

配置提供程序  加密配置文件的各个部分

WebParts提供程序

第十二章 扩展程序模型

第十三章 站点导航

使用 SiteMap 类或 SiteMapDataSource 控件 [W19] 与这个导航信息交互

站点地图  demo

PathSeparator 属性                   更改">"   DMEO   DMEO2

PathSeparatprTemplate 元素                   更改">",可以放置Image控件 DEMO

PathDirection          改变输出中生成的链接方向

ParentLevenlsDisplayed          会只显示指定深度的页面

TreeView 服务器控件

要填充TreeView控件的节点,不仅可以使用.sitemap文件,还有许多其他方式。一种比较好的方式是使用 XmlDataSource 控件(而不是SiteMapeDataSouce控件)从XML文件中填充TreeView控件

编程          扩展或折叠TreeView控件的节点          DEMO

编程展开特定的节点                   DEMO

使用Expanded属性编程展开节点          DMEO

给TreeView控件编程添加节点                   DEMo

Menu服务器控件   DEMO

要使用 SiteMapDataSource 控件   SiteMapDataSource会自动处理Web.sitemap文件

使用预定义的样式  DEMO

改变 静态 项的样式          DMEO [W20]

给 动态 项添加样式          DEMO [W21]

修改菜单项的布局          DEMO   垂直

改变弹出符号          使用定制的图像          StaticPopOutImageUrl="myArrow.gif"

用图片分隔          ynamicBottomSeparatorImageUrl="myDivider.gif"

使用Menu控件和XML文件          DEMO

SiteMap  API

URL映射         :         urlMappings   DEMO

要映射到应用程序不包含的页面上

server.Transfer(URL)

安全补偿 security trimming

<siteMapNode>  的role属性

默认情况下,安全补偿功能是禁用的,

在web.config文件中启动角色管理系统         DEMO

在web.config文件中锁定AdminOnly.aspx页面 demo

启动提供程序中的安全补偿功能         DEMO

then就可以在站点导航系统中使用<siteMapNode>  的role属性了

嵌套站点地图文件

Entertainment.sitemap

then给Web.sitemap文件添加新内容        

< siteMapNode  siteMapFile=" Entertainment.sitemap " />

在同一个Web.sitemap文件中使用另一个提供程序  DEMO

then给Web.sitemap文 件中使用第二个提供程序

< siteMapNode  privider="AspNetXmlSiteMapProvider2" />

第十四章 个性化

创建个性化属性

添加简单的个性化属性         DEMO        

把个性化属性应用于匿名用户的功能在默认情况下是禁用的

使用定义好的个性化属性         DEMO

使用后期的绑定技术         DEMO

添加一组个性化属性         DEMO

使用分组的个性属性         DEMO

定义类型         DEMO

创建一个要用作个性化类型的 类 DEMO   web.config指定个性属性用 复杂类型 (类) DMEO

默认值         DMEO

属性指定方只读         readonly="True"

允许进行匿名身份识别         DEMO

给匿名身份修改Cookie的名称         DEMO

管理应用程序的配置信息         建立ProfileManager.aspx页面         DEMO

第十五章 成员和角色管理

传统上,处理Windows Forms 应用程序(胖客户)时,使用 Windows Integrated Authentication;

处理基于浏览器的应用程序(瘦客户)时,使用 Forms 验证

< authentication mode = " Forms " />

打开了使用.net 3.5提供成员服务所需要的所有功能

终端用户尝试访问站点时,使用匿名身份进入站点,这是默许的身份验证模式

给web.config文件添加<forms>元素         修改Fomrs验证系统的行为 DEMO

添加用户

使用 CreateUserWizard 服务器控件         把注册用户放在数据库中,以便以后进行检索

重新设置sql server的成员的提供程序,使之不需要密码包含非数字和字母的字符 DEMO

ContinueButtonClick事件 单击时

CreateUser事件                 成功创建一个用户时触发

从注册过程中合并个性化属性

先在web.config文件中创建个性化属性         DMEO

than使用个性化属性和CreateUserWizard控件         DEMO

编程创建用户         DEMO

捕获特定的MembershipCreateUserException值         DMEO

authorization 拒绝未验证的用户          DEMO

使用Login服务器控件          DMEO

编程登录用户                   DEMO

锁定输入错误密码的用户          在提供程序声明中修改密码尝试次数          DEMO

处理验证用户: LoginStatus         LoginName

LoginStatus控件的登录和注销功能         DEMO

显示验证用户的用户名         DEMO

显示在线用户数         DEMO                 时间范围在machine.config文件设置,

<membership  userIsOnlineTimeWindow="15"></membership >         15分钟

处理密码:

ChangePassword控件         允许用户修改密码         DMEO

PasswordRecovery控件        

建立SMTP服务器

在web.config文件中配置通过电子邮件传送的密码                 DEMO

从数据库中提取密码         DEMO [W22]

生成随机密码         DMEO

用陙 机密码创建用户         DMEO

3.5的授权:

通过LoginView控件控件显示的信息                 DEMO

角色管理   machine.config.comments文件中的角色管理提供程序设置 DEMO

web.config文件         DEMO

给应用程序添加角色         DEMO

Roles.GetAllRoles()         返回服务中所有角色的String集合

从应用程序中删除角色         DEMO

给角色添加用户:

Roles.AddUsersToRoles(usernames9()  As String ,rolenames()  As  String)        

从角色删除用户:

Roles.RemoveUsersFromRoles(usernames9()  As String ,rolenames()  As  String)        

查找某个角色的所有用户         DEMO

获取包含某个用户的所有角色         DEMO

在某个角色查找特定的用户         DEMO

设置提供程序

>aspnet_regsql.exe  -A  all  -E

第十六章 Portal Framework 和 Web Part

WebPartManager控件必须放在Portal Framework的应程序的每个页面中。一个WebPartManager只能管理一个页面。

也可以把WebPartManager控件放在Master页面上,从而避免每个内容页面上放置一个WebPartManager控件

创建多个Web区域          DEMO

WebPartZine控件         

LayoutOrientation属性          水平或直

ZoneTemplate元素          封装了一个区域中的所有项

给页面添加模式列表                   DEMO

给页面添加 Web Part  添加Catalog Zone          DEMO                   [W23]

修改Web Part设置          在页面上添加Editor Zone          DMEO

Behavior 块允许终端用户选择是否关闭、最小化和导出Web Part

为显示Behavior块,首先要修改Web.config文件          DEMO

添加一些代码,以显示Behavior块,          DMEO

连接 Web Part   会用 <asp:ConnectionZone>控件在两个Part之间建立连接

禁用修改区域的功能                   DEMO

通过其他方式添加控件 

DeclarativeCatalogPart 控件          DEMO

合并目录类型          DMEO

Web Part动词

<CloseVerb>                   使Web Part中的Close链接灰显 DMEO

删除Close链接          DMEO

<ConnectVerb>

<DeleteVerb>

<EditVerb>

<ExportVerb>

<HelpVerb>

<MinimizeVerb>

<RestoreVerb>

给 Web Part动词使用图像                   DMEo

使用Web Part中的类:

WebPartManger

WebPartZone

WebPart

创建定制的Web Part控件                   DEMO

建立提供程序 Web Part

建立一个接口以提供用于传递给Web Part的属性          DEMO

建立定制的提供程序Web Part          DEMO

建立用户Web  Part          DMEO

连接ASP。NET页面上的Web Part          DMEO

连接Web Part时处理Master页面时,使用 ProxyWebPartManger 控件

第十七章 用ASP.NET进行HTML和CSS设计       引用

视图                   管理样式          应用样式

在Master页面中管理相对CSS链接

第十八章 ASP.NET AJAX

ScriptManager 控件,负责加载ASP.NET AJAx 需要的JavaScript库

ScriptManagerProxy 控件,专门用于master页面                  

如果要以任何方式修改Master页面上的ScriptManager控件,就必须在内容页面上添加一个ScriptManagerProxy控件

Timer 控件                   DMEO

UpdatePanel 控件         

<ContentTemplate>元素          DEMO

<Triggers>          元素                   DMEO          [W24]

在VS2008中建立 Triggers 触发器

UpdateProgress 控件

显示文本信息          DMEO

控制信息显示的时间                   DMEO

在<ProgressTemplate>中添加图像控件

使用多个UpdatePanel控件                   DMEO

UpdateMode属性(Always表示每个UpdatePanel控件总是在每次异步请求时更新  Conditional表示仅在满足一个触发条件时更新)                   DEMO

asp.net ajax 语法

第十九章 ASP.NET AJAX控件工具集

www.asp.net/ajax

常访问这些控件的CodePlex页面

AlwaysVisibleControlExtender 控件          DEMO         

指定在需要滚动的长页面上总是显示出来

AnimationExtender 控件          DMEO

编写动画可以使用以下和事件:

OnClick

OnHoverOver

OnHoverOut

OnLoad

OnMouseOver

OnMouseOut

AutoCompleteExtender 控件          自动匹配所输入的结果          aspx.cs          aspx        

CalendarExtender 控件                   只有单击此才会弹出日历          DEMo

PopupControlExtender 控件          为任何控件创建弹出窗口。 DEMO

CollapsiblePanelExtender 控件         

把一个控件折叠到另一个控件          DMEO

使用Label控件展开和折叠Panel控件          DMEO

ConfirmButtonExtender 控件

通常在允许终端用户通过浏览器应用程序删除数据之前,都要终端用户确认此操作          DMEO

创建自己的确认窗体                   DEMO

DragPanelExtender          在页面上拖动Panel控件          DMEO

DropDownExtender          使用Image控件作为下拉列表的启动器          DMEO

DropShadowExtender                   阴影等 Rounded属性设置为True就圆角 DEMO

DynamicPopulateExtender          获得HTML输出,之后把HTML输出放在Panel控件上          aspx.cs          aspx        

FilteredTextBoxExtender          限制文本框只能使用数字          DEMO

HoverMenuExtender                   相当于工具提示         

ListSearchExtender                   扩展ListBox控件          DEMO

MaskedEditExtender          maskededitvalidator          扩展了 FilteredTextBoxExtender 控件          DEMO

Mask  蒙板字符

9:仅输入数字

L:仅输入字母

$ : 仅输入字母或空格

C:仅输入定制字符(区分大小写)

A:仅输入字母或定制字符

N:仅输入数字或定制字符

?:任意字符

除字符限制外,模板中使用的分隔符如下:

/ 日期分隔

: 时间

.  小数

,千位分隔

/  转义

{ 重复蒙板的起始分隔符

} 重复蒙板的结束分隔符

maskededitvalidator 使用它的ControlExtender属性把它自己和MaskedEditExtender控件关联起来,使用ControlToValidate属性检查窗体上的特定控件。  EmptyValueMessage指定错误的信息

ResizableControlExtender

可以提取一个Panel控件,让终端用户捉取一外句柄,改变元素的大小 DEMO

RoundedCornersExtender 圆角          DMEO

TextBoxWatermarkExtender          文本水印功能          DEMO          给水印应用样式 DMEO

ToggleButtonExtender                  

处理复选框控件,可以使用自己的图像替代复选框控件一般使用的标准复选图像 DMEO

UpdatePanelAnimationExtender

可以使用两个特定的事件把动画应用于Panel控件上。第一个事件是OnUpdating,第二个事件是OnUpdated,接着使用ASP。NET AJAX动画框架          DEMO

ValidatorCalloutExtender

添加更加引人注意的有效性验证信息                   DEMO

SlideShowExtender          张灯片          aspx.cs          aspx        

SliderExtender 滑块          DMEO

MutuallyExclusiveCheckBoxExtender          一组复选框,把它们用作单选按钮          DEMO

NumericUpDownExtender          可以把上/下指示器放在文本框控件旁边                   DEMO

对控件使用字符而不是数字          DEMO

PagingBulletedListExtender                  

可以使用很长的项目列表,并给列表按字母顺序分页          DEMO

AJAX控件工具箱中的 服务器 控件:

Accordion          控件                   可折叠的面板                   DEMO

包含表示为accordionpane 控件的面板

PasswordStrength          DEMO

检查文本框控件中密码的内容,验证其保密强度,它还给用户提供一个信息,说明此强度是否合理

Rating          星级                   DMEO

TabContainer          标签                   DEMO

NoBot  用于确定实体如何与窗体交互,帮助确保人们使用窗体,而一些自动化代码不操作应用程序         

限制登录窗体          aspx.cs          aspx        

第二十章 安全性

第二十一章 状态管理

.NET内置对象

Application 对象    DMEO

对任何用户请求的.net应用程序的所有网页都可用

在线用户          Global.asax   aspx.cs   aspx

Session 对象

对单个用户请求的.net应用程序的所有网页都可用

DEMO         所需的类         cs         aspx.cs   aspx

输出Session内容                  DEMO

Session .Clear ();                 清除

Session.Timeout = 2;         过期

优化会话性能 的高级技术<@Page  EnableSessionble  = " " >         [W25]

如果应用程序不使用Session,在Web.config文件中设置Mode=“OFF”

会减少整个应用程序的开销

Cookie 对象

DEMO         DEMO2                 MyCookie_t. Expires .AddYears(100);   过期

Sever 对象

获取服务器的路径         DEMO         Server.MapPath("books.xml")          得到此文件的完整文件名

防止脚本入侵                 DEMO         Server.HtmlEncode

页面中乱码的处理         DEMO         Server.UrlEncode()  Server.UrlDecode()

Response 对象

缓存机制         DMEO

服务器日志         Response. AppendToLog (" 这是一个服务器 ");        

日志文件路径 IIS中 启用日志记录F:/WINDOWS/system32/LogFiles

Response. End ()停止页面信息输出          DEMO          Response.Flush();//立即输出缓存

Response.AddHeader("Location", "http://www.yahoo.com.cn");                  

Response .WriteFile输出图片文件          DEMO

页面传递参数  aspx.cs   aspx

输出页面信息          DEMO

Response.clear()                   // 同时删除响应体和响应报头

Response.cleartContent()          // 只删除响应体而不删除响应头

Response.clearHeader()          // 删除响应体

Request 对象         派生自HttpRequest

Request.QueryString["  "];         //Request.RequestType使用的是get

Request.Form["  "];                 //Request.RequestType使用的是Post

Request.Params[         ];                 //遍历查找可使用的方法

Request["  "];                                 //

为短时间状态存储应用 HttpContext .Current.Items

在IHttpModule和IHttpHandler之间共享内容

一个HttpRequest中的各个单元需要处理相同或类似的数据。如果数据的生存期只是一个请求,就可以考虑使用HttpContext.Items作为短期的高速缓存

第二十二章   高速缓存

高速缓存:

输出高速缓存         <%@ OutputCache  Duration="60"  VaryByParam="None"  %> [W26]

.net中的高速缓存实现为一个HttpModule,它通过ASP.NEt辅助进程监听所有HttpRequest。

OutputCacheModule监听应用程序的ResolveRequestCache和UpdateRequestCache事件,处理高速缓存的请求和失败,返回缓存的HTML。如果需要,绕过页面处理程序

VaryByParam 属性          VaryByParam="pageId;subPageId"  指定哪些QueryString参数会高速缓存页面的新版本

VaryByParam ="*"  根据QueryString参数中的差别高速缓存页面的新版本

VaryByParam ="*"  VaryByHeader ="User-Agent"  User-Agent表示用户的浏览器类型。.net可以自动生成给定页面的不同显示结果,用于特定的浏览器

VaryByControl 属性                   控件的ID

VaryByCustom 属性                  

部分页面(UserControl)的高速缓存:

<   Shared="true">         一个用户控件只会缓存一次,为所有页面所用

Post-Cache Substritution         使用Substitution 控件

客户端调整缓存

编程调速缓存

DataSet  ds = new  DataSet();

ds = (DataSet)Cache["WhatINeedToStore"];

SQL Serber 2005 高速缓存禁用功能

第二十三章   高度和错误处理技术

<%@ Page Trace="true" %>

Trace.Write("目前是在Page_Load事件",User.Identity.ToString());

<system.web>

<trace enabled=""  pageOutput="false">

<compilation debug = "">

localhost/trace.axd          显示应用程序页面的跟踪信息

第二十四章   文件I/O和流

第二十五章   用户控件和服务器控件

检测和响应浏览器功能

.browser文件

所有的浏览器标识和功能信息都存储在.browser文件中

在服务器端代码中检测浏览器的功能 DEMO

使用ViewState

VireState可以在Web页面的整个生命周期中,把控件的状态存储在一个隐藏的窗体字段(它显示为HTML的一部分)中,以维护Web页面中的控件和对象的状态

在内置的所有器控件中都是激活的

ViewState有时可能非常大,会影响整个页面大小,所以应考虑采用另一种方法来存储ViewState信息。可以从System.Web.UI.PageStatePersister类中派生一个类,重写它的Load和Save方法,来创建自己的保存机制

Text属性使用ViewState                    DEMO

在给ViewState添加数据时应该把数据打包到以下类型:

基本类型(Int32 Boolean等)

基本类型的数组

ArrayList......

CotrolState

2.0引进的。

基本上是只用于定制控件的私有ViewState,且关闭ViewState时不受影响

两个新方法 SaveViewState 和 LoadViewState 可以访问ControlState

在服务器控件中使用ControlState          DEMO

引发PostBack事件

给服务器控件添加回送功能          DEMO

第二十六章   使用业务对象

第二十七章   建立和使用服务

第二十八章   本地化

查看asp.net线程的文化         DMEO

使用CultureInfo对象改变线程的文化设置         DEMO

服务器端 文化声明:

web.config.comments文件中<globalization>段         DEMO

web.config文件中定义的<globalization>段         DEMO

使用@page指令在页面级别上定义文化                 [W27] UICulture="ru-RU" Culture="ru-RU"

客户端 文化声明:

把文化改为终端用户指定的首选文化

<%@ Page Langue="" UICulture="auto" Culture="auto" %>

使用自动检测功能,如果没有指定终端用户首先的文化,就使用指令指定的

<%@ Page Langue="" UICulture="auto:en-US" Culture="en-US" %>

在不同的文化中使用日期、时间值         DEMO

在不同的文化中使用数字                 DEMO

在不同的文化中使用代币                 DMEO

显示贷币时显示指定的文化         DEMO

在不同的文化中进行排序                 SWMO

把文化改                 DMEO

App_ Global Resources         不变的资源文件

直接在服务器控件中使用全局资源         DMEo

编程获取全局资源         DEMO

App_LocalResources本地资源         工具 生成本地资源         (只用在设计视图里)

使用工具自动生成本地化资源,并隐式的绑定到控件上,来实现页面的本地化是非常简单的,但存在以下几项问题:

1)必须为每个页生成多份资源文件;

2)只有控件属性中被标识为Localizable(true)才可能被工具扫描到;

3)由于是对页面包含的控件进行扫描,所以最好是在页面布局基本确定后再使用该工具,并且在编辑完    资源文件后不要再使用该工具,如果不幸你这样做了。。。会发现默认的资源文件被清空了

在后台编程时使用这两种资源

protected void Button1_Click(object sender, EventArgs e)

     {

         Localize1.Text  = (String)GetLocalResourceObject("Label1Resource1.Text") + " " +

             (String)GetGlobalResourceObject("LocalizedText",  "Msg1");

     }

记得添上这个引用

using System.Globalization;

第二十九章   配置

访问web.config配置

输出配置文件中所有数据库连接

根级的web.config文件使用的信任级别         DEMO         trust level="Full"

改为中等信任级别         DEMO

allowOverride="false" 可以忽略这些继承或重写规则

ASP.NET 3.5 支持的 身份验证:

windows                

Passport                

Forms                

联合使用Login控件和窗体身份验证  DEMO

FormsAuthentication.RedirectFromLoginPage

使用User.Identity

获取登录用户的用户名         string userName = User.Identity.Name;

检查用户是否已通过验证         bool authUser = User.Identity.IsAuthenticated();

使用AuthenticationType属性         string  authType = User.Identity.AuthenticationType; [W28]        

检查用户是否在某个角色中         User.IsInRole("ReutersServer/Subscribers")

两种授权:

URL授权 

是URLAuthorizationModule(继承自 HttpModule )提供的一个服务,用于控制对.aspx文件等资源的访问

在<authorization>中允许或拒绝实体         DEMO

拒绝匿名用户         DMEO                 *表示所有的用户         ?表示匿名用户

get post方法拒绝用户和角色         DEMO         verbs

File授权 location

把Documents子目录的访问权限授予Admin角色         DEMO

单个文件访问权限         DEMO

锁定配置设置

machine.config文件中的location段指定了路径Default Web Site/ExampleApplication ,允许所有的应用程序用allowOverride属性重写<trace>设置         DEMO

页面配置 page         DEMO

include文件         DEMO  configSource

配置ASP.NEt运行时设置         DEMO

完全限定的重定向URL         useFullyQualifiedRedirectUrl

请求超时         executionTimeout

请求的最大的尺寸         maxRequestLength

缓存的上传         requestLengthDiskThreshold

线程管理         minFreeThreads  minLocalRequestFreeThreads  保证线程可用数

输出调整缓存         enableKernelOutputCache

配置ASP.NEt辅助进程         processModel

存储与应用程序相关的设置         DMEO

操作远程服务器上的web.config                 DMEO

保护配置设置:

加密<connectionString>段          

aspnet_regiis -pe  "connectionString" -app "/EncryptionExample"

解密         aspnet_regiis -pd  "connectionString" -app "/EncryptionExample"

加密<authentication>段

aspnet_regiis -pe  "system.web/authentication" -app "/EncryptionExample"

创建定制段:

在web.config中创建自己的定制键-值对部分         DEMO

在web.config中设置自己的定制键-值对部分         DMEO

编程访问web.config中的定制段                 DMEO

类似利用本地资源方法总结(与枚举一样利用)

个性化属性             DEMO        

App_GlobalResources的全局资源                 DEMO   DEMO

应 用 程序设置        

                              web.comfig中的设置                  demo

使用web.co n fig中的设置         DEMO

App_LocalResources本地资源         工具 生成本地资源         (只用在设计视图里)

连接多个数据库

第三十章                   测试

在浏览器中显示事件日志的内容         DEMO

管理工具         性能计数器

在浏览器查看性能计数器的值         DEMO

健康监控系统

缓冲web事件

第三十一章   管理

Application选项卡

管理应用程序设置

管理 SMTP 配置

管理跟踪和调试信息

应用程序状态: 联机

第三十二章   打包和部署asp.net应用程序

在部署之前 <compilation  debug = "flase">

xcopy  c:/Websites/Website1  z::'Websites/         /f  /e  /k  /h

使用VS Copy Web Site选项

附录:

A 迁移asp.net项目

B asp.net终极工具

YSlow         雅虎的13规则

评测 器:dotTrace或ANTS                 10天试用期

js最小化器 :Packer for .NET

ASPX Edit Helper         自动代码

Power Toys Pack Installer工具集

http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/

http://api.jquery.com/

Microsoft Ajax Minifier 4.0. [W1]

http://www.asp.net/ajaxlibrary/download.ashx

asp.net/MVC工具

整理代码: Refactor! for ASP.NET   Code Style Enforcer

jquery代码智能提示功能。

首先读者需要下载一个补丁,地址如下:

http://code.msdn.microsoft.com/KB958502/Release/ProjectReleases.aspx?ReleaseId=1736

补丁安装好后,再下载jquery-1.2.6-vsdoc.js( http://jqueryjs.googlecode.com/files/jquery-1.2.6-vsdoc.js ) 文件,把它与jquery-1.2.6.js文件放在同一个文件夹下。最后在页面中与往常一样用<script>标签引入jQuery脚本 库,Visual Studio 2008会自动识别并找到jquery-1.2.6-vsdoc.js文件。

[W2]

如果我们更新了脚本, 可以通过"Ctrl+Shift+J"快捷方式更新Visual Studio的智能感知,或者单击 编辑->IntelliSense->更新JScript Intellisense:

为了即能在Visual Studio中增加脚本提示, 又能在上线的时候使用min版本的脚本库, 我们一般是用如下方式引入jQuery库:  [W3]

Subversion SCC Provider

http://ankhsvn.open.collab.net/        

将你的项目托管到google code或者sourceforge上,你可以使用这个Visual Studio插件连接你的项目。

MetalScroll

http://code.google.com/p/metalscroll/

MetalScroll是RockScroll插件的替代者。它用一个代码缩略图替换代码编辑器的滚动条。

Source Code Outliner Power Toy

http://www.codeplex.com/SourceCodeOutliner

是另外一个方便查看代码大纲的插件。如果使用Eclipse进行Java项目的开发,你可能习惯了Eclipse大纲显示的便捷性。这个插件实现了此特别有用的功能,它可以在一个窗口内显示类的成员信息,方便开发者查看和导航。

VS 2008 File Finder

http://www.huffs.us/blogEngine/page/VS-2008-File-Finder.aspx

在一个包含N个project的解决方案中查找一个文件时,使用这个插件相当有用。它提供一个窗口,可以快速的找到项目中的某个文件。类似Eclipse的Ctrl+Shift+R快捷键。

Clone Detective for Visual Studio

http://clonedetectivevs.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=16114

此插件可以分析项目中的代码,找到那些重复的代码。重复的代码不但冗余,而且一旦修改业务逻辑,多处代码也不好维护一致性。

ajaxmin test.js -o test.min.js

ajaxmin test.css -o test.min.css

  < script type ="text/javascript" src ="scripts/jquery-1.2.6.js"></ script >

<% if ( false )

   {  %>

< script type ="text/javascript" src ="scripts/jquery-1.2.6-vsdoc.js"></ script >

<% } %>

  <% if (false) 

{%> 

<script src="Js/jquery-1.3.2.js" type="text/javascript"></script> 

<script src="Js/jquery-1.3.2-vsdoc.js" type="text/javascript"></script> 

  <%}%> 

<%="<script src=/"Js/jquery-1.3.2.min.js/" type=/"text/javascript/"></script>" %> 

继续阅读