ASP.NET网站开发——用户控件与HttpHandler
一丶用户控件
定义:用户控件可用来实现页面中可重用的代码,是可以一次编写就多处方便使用的功能块。它们是ASP.NET控件封装最简单的形式。由于它们最简单,因此创建和使用它们也最简单。用户控件实际上是把已有的服务器控件组合到一个空间容器中,这样就可以创建出来了。
用户控件是能够在其中放置标记和Web服务器控件的容器,可以被看作一个独立的单元,拥有自己的属性和方法,,并可放入到ASPX页面上。ASPX页面和ASP.NET页面十分相似。
Web用户控件 | Web自定义控件 |
易于创建 | 难于创建 |
为使用可视化设计工具的使用者提供有限的支持 | 为使用者提供完全的可视化设计工具支持 |
每个应用程序中需要控件的一个单独副本 | 仅在全局程序几缓存中需要控件的单个副本 |
不能添加到Visual Studio中工具箱 | 可以添加到Visual Studio中工具箱 |
适用静态布局 | 适用动态布局 |
创建用户控件
创建新的用户控件,首先在Web站点中添加一个Web应用程序
创建完成点击项目名称—添加新建项—Web用户控件
创建完成(注意:ascx文件里只有一行代码,没有html标记,文件里不能包含<head>丶<form>丶<body>标签)
例题 单击按钮将用户输入的文本信息还有按钮的文本信息显示出来。
这里我们要注意将控件都拖到.ascx文件中
这里我们来看aspx文件和ascx文件生成类型一样都有前台和后台
双击按钮你会发现和aspx文件一样会自动生成一个后台事件,在里面编译方法实现例题要求的功能
功能效果如下
二丶HttpHandler
在ASP.NET中,我们可以很方便地创建HttpHandler的应用。我们如果图片想加水印可以通过HttpHandler来为图片添加水印,在显示图片时添加水印。我们想现在的网站大部分图片占网站大部分内容,如果一张一张的去p图,那么会费时费力还会有可能搞混,如果我们使用HttpHandler的功能可以简单的将图片加上水印,还会降低错误率。
我们在 项目名称 中点击右键中添加“一般处理程序”如图
这段代码说明context对象可控制输出的内容和类型。ContentType用于设置程序输出类型。
封面数字水印的实现(指定Handler方式)
通过修改后缀为.ashx的文件,实现效果 默认代码如下:
这个代码我们还要做的是,将所需要的图片路径修改为“PicCover.ashx?id=图片名称”
封面数字水印的实现(全局Handler方式)
实现思路分析:
修改配置信息,将所有对.jpg内容的访问转到HttpHandler处理程序
获得访问请求,得到用户访问的图片路径;
根据请求的路径,查找相应的DVD封面图片;
将网站标示“绘制”在DVD封面图片左下角;
修改程序的输出类型,并将组合出的新图片输出;
首先,我们修改配置信息(Web.config文件)在文件中添加代码行如下:
verb:指定谓词列表可以是逗号分隔的HTTP谓词列表(例如:“get put post” 【*】通配符表示所有请求)
path:指定路径,此处表示所有针对图片URL路径的请求,如果那个图片文件中都是图片那可以使用通配符*表示所有图片
type:指定处理程序(类)。
此方法与上面的方法非常相似,只不过我们不用再获取图片ID值了