ashx是什么文件,如何创建[转]
<% @ webhandler language="C#" class="AverageHandler" %>
using System;
using System.Web;
public class AverageHandler : IHttpHandler
{
public bool IsReusable
{ get { return true; } }
public void ProcessRequest(HttpContext ctx)
{
ctx.Response.Write("hello");
}
}
注意了VS2005中Web应用程序项目模板里的Generic Handler 项,发现它是一个.ashx文件,实际上它是一个HttpHandler。后来查了一下.Net SDK文档,发现Asp.Net1.1也支持.ashx,但是没有给出详细内容。
我们都知道,HttpHandler是一个彻底自定义Http请求的方法,它通过web.config来定义Asp.Net运行时来过滤出要自定义的Http请求,发送到定义在web.config的指定类中。
利用.ashx文件是一个更好的方法,这个文件类似于.aspx文件,可以通过它来调用HttpHandler类,从而免去了普通.aspx页面的控件解析以及页面处理的过程。这个文件特别适合于生成动态图片,生成动态文本等内容。
建立方法如下:
首先打开一个Web项目,然后在任意目录下使用VS2003解决方案资源管理器的“添加”-->“添加新项”,在对话框中选择“文本文件”,然后在文件名处输入“TextBuilder.ashx”。
然后在同目录下,使用解决方案资源管理器,使用“添加”-->“添加类”,在类文件名处输入“TextBuilder.ashx.cs”。可以看出,它的文件命名规律与.aspx文件相同。
然后在.cs文件处输入以下代码(名称空间略):
public sealed class TextBuilder : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ClearContent();
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
context.Response.End();
}
public bool IsReusable
{
get { return true; }
}
}
然后在“TextBuilder.ashx”文件的第一行处输入上面这个类的调用代码:
上面的代码需要注意的是:必须在Class项中输入类的完整名称,即包括名称空间及类名称。
最后保存并编译项目。
使用IE测试,输入这个.ashx的地址即可。
大家可以看出Response类有个OutputStream方法,可以向客户端输出二进制数据流,所以在我的项目中,使用这个方法,在一个.ashx中使用DundasChart控件就可以生成非常好的统计图,用它发送二进制数据,方便快捷,而且不需在web.config内输入任何配置代码。
.ashx文件有个缺点,他处理控件的回发事件非常麻烦,比如说如果用它来生成DataGrid的列表也不是不行,但是处理数据的回发,需要一些.aspx页的功能,只有自己手动处理这些功能。所以,一般使用.ashx,用来输出一些不需要回发处理的项目即可。
ashx是什么文件,如何创建[转]相关推荐
- ashx是什么文件,如何创建
.ashx 文件用于写web handler的.其实就是带HTML和C#的混合文件.当然你完全可以用.aspx 的文件后缀.使用.ashx 可以让你专注于编程而不用管相关的WEB技术..ashx必须包 ...
- ashx PHP文件 优劣,.NET_ashx介绍以及ashx文件与aspx文件之间的区别,ashx是什么文件?
.ashx 文件用于 - phpStudy...
ashx介绍以及ashx文件与aspx文件之间的区别 ashx是什么文件? .ashx 文件用于写web handler的..ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类 ...
- Metro中文件夹和文件的创建
本文主要介绍两种文件的创建,分别是使用: ApplicationData.Current.RoamingFolder和KnownFolders.DocumentsLibrary中提供的. 使用之前,需 ...
- 基类和派生类写在一个文件中_BootISO:从 ISO 文件中创建一个可启动的 USB 设备...
今天,我们将讨论名为 BootISO 的实用程序类似工具.它是一个简单的 bash 脚本,允许用户来从 ISO 文件中创建一个可启动的 USB 设备. -- Prakash Subramanian(作 ...
- 如何从文件内容创建Java字符串?
我已经在下面使用过一段时间了. 至少在我访问过的网站上,它似乎是分布最广的. 在Java中,是否有更好/不同的方式将文件读取为字符串? private String readFile(String f ...
- golang 文件操作 创建 读写 复制移动 权限 删除
目录 介绍 基本操作 创建空文件 Truncate文件 得到文件信息 重命名和移动 删除文件 打开和关闭文件 检查文件是否存在 检查读写权限 改变权限.拥有者.时间戳 硬链接和软链接 读写 复制文件 ...
- golang 文件 文件夹 创建 读取 移动 复制 写入 遍历
目录 文件读取 创建 写入 移动 拷贝 删除 文件 创建文件夹 文件覆盖判断 遍历文件夹 权限 文件操作, 大体分为两部分: os库 : 文件\文件夹创建,读取,移动,复制 io库 : 文件内容的写入 ...
- android file 创建时间,获得文件的创建时间(精确到时分秒)
最近的项目中遇到一个需求,要求判断文件是否被修改.这下犯了难.一开始打算使用file.lastModified(),后来才意识到这个只能获取最后修改时间,无法获取文件的创建时间.后来,参考论坛中大神( ...
- linux和unix文件没有创建时间,Linux中没有文件创建时间的概念
在Linux中,没有文件创建时间的概念.只有文件的访问时间.修改时间.状态改变时间.也就是说不能知道文件的创建时间.但如果文件创建后就没有修改过,修改时间=创建时间;如果文件创建后,状态就没有改变过, ...
最新文章
- 云计算平台管理的三大利器Nagios、Ganglia和Splunk
- 《程序员修炼之道》笔记(九)
- python递归面试题_汉诺塔问题其实很简单 Python 递归经典面试题
- 如何用DOS命令查看占用某端口的程序及PID号
- Timer的schedule和scheduleAtFixedRate方法的区别解析(转)
- Node编写API接口,ajax实现增删改查
- eclipse java开发实例_eclipse+webservice开发实例
- 计算机视觉SLAM方向顶会
- 图文教程使用一套键鼠控制两台电脑
- cJSON基本使用方法
- 无损图片压缩-设计师程序员的心头爱
- WIN系统仿MAC任务栏工具分享——RocketDock
- 消费者购买决策行为研究模型
- IS_REACHABLE
- 蓝牙耳机品牌推荐:2023年口碑最好的蓝牙耳机品牌排行
- 圣斗士星矢重生服务器维护,11月26日全服停机维护公告
- Centos配置DNS
- iOS查看系统所有字体(带效果图)
- Windows 10 下安装gcc
- CF 666E 题解
热门文章
- 邮件发送退信分析大全/SMTP error, RCPT TO: 550 Relay Deny
- 打印出所有的中文字符
- 在 Ubuntu 下安装 Discuz! 7.0
- nginx css 304 导致图片丢失_Nginx 从入门到实战
- netbeans 添加gif图片_怎么制作动态图片?手机如何制作清晰gif动图?
- 使用vue加svg实现流程图代码_京东风格的移动端Vue组件库NutUI2.0来啦
- c语言中小数乘法怎样写程序,四年级下册lbrack;小数乘法rsqb;知识点归纳
- pic16f630 c语言编程,PIC16f630简单练习程序
- Nginx设置成服务并开机自动启动的配置详解
- 大神教你实现redis键空间通知