原文地址:http://www.cnblogs.com/lin614/archive/2008/01/18/1044734.html
ashx是什么文件,如何创建
.ashx 文件用于写web handler的。其实就是带HTML和C#的混合文件。当然你完全可以用.aspx 的文件后缀。使用.ashx 可以让你专注于编程而不用管相关的WEB技术。.ashx必须包含IsReusable. 如下例所示

<% @ 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"); 

}

.ashx比.aspx的好处在与不用多一个html   

注意了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文件处输入以下代码(名称空间略):

using System.Web 
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”文件的第一行处输入上面这个类的调用代码:

<%@ WebHandler language="C#" Class="MyNamespace.TextBuilder" codebehind="TextBuilder.ashx.cs" %>

上面的代码需要注意的是:必须在Class项中输入类的完整名称,即包括名称空间及类名称。

最后保存并编译项目。

使用IE测试,输入这个.ashx的地址即可。

大家可以看出Response类有个OutputStream方法,可以向客户端输出二进制数据流,所以在我的项目中,使用这个方法,在一个.ashx中使用DundasChart控件就可以生成非常好的统计图,用它发送二进制数据,方便快捷,而且不需在web.config内输入任何配置代码。

.ashx文件有个缺点,他处理控件的回发事件非常麻烦,比如说如果用它来生成DataGrid的列表也不是不行,但是处理数据的回发,需要一些.aspx页的功能,只有自己手动处理这些功能。所以,一般使用.ashx,用来输出一些不需要回发处理的项目即可。

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 572064792 | Nodejs:329118122 做人要厚道,转载请注明出处!
本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sunshine-anycall/archive/2009/07/08/1519020.html,如需转载请自行联系原作者

ashx是什么文件,如何创建[转]相关推荐

  1. ashx是什么文件,如何创建

    .ashx 文件用于写web handler的.其实就是带HTML和C#的混合文件.当然你完全可以用.aspx 的文件后缀.使用.ashx 可以让你专注于编程而不用管相关的WEB技术..ashx必须包 ...

  2. ashx PHP文件 优劣,.NET_ashx介绍以及ashx文件与aspx文件之间的区别,ashx是什么文件? .ashx 文件用于 - phpStudy...

    ashx介绍以及ashx文件与aspx文件之间的区别 ashx是什么文件? .ashx 文件用于写web handler的..ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类 ...

  3. Metro中文件夹和文件的创建

    本文主要介绍两种文件的创建,分别是使用: ApplicationData.Current.RoamingFolder和KnownFolders.DocumentsLibrary中提供的. 使用之前,需 ...

  4. 基类和派生类写在一个文件中_BootISO:从 ISO 文件中创建一个可启动的 USB 设备...

    今天,我们将讨论名为 BootISO 的实用程序类似工具.它是一个简单的 bash 脚本,允许用户来从 ISO 文件中创建一个可启动的 USB 设备. -- Prakash Subramanian(作 ...

  5. 如何从文件内容创建Java字符串?

    我已经在下面使用过一段时间了. 至少在我访问过的网站上,它似乎是分布最广的. 在Java中,是否有更好/不同的方式将文件读取为字符串? private String readFile(String f ...

  6. golang 文件操作 创建 读写 复制移动 权限 删除

    目录 介绍 基本操作 创建空文件 Truncate文件 得到文件信息 重命名和移动 删除文件 打开和关闭文件 检查文件是否存在 检查读写权限 改变权限.拥有者.时间戳 硬链接和软链接 读写 复制文件 ...

  7. golang 文件 文件夹 创建 读取 移动 复制 写入 遍历

    目录 文件读取 创建 写入 移动 拷贝 删除 文件 创建文件夹 文件覆盖判断 遍历文件夹 权限 文件操作, 大体分为两部分: os库 : 文件\文件夹创建,读取,移动,复制 io库 : 文件内容的写入 ...

  8. android file 创建时间,获得文件的创建时间(精确到时分秒)

    最近的项目中遇到一个需求,要求判断文件是否被修改.这下犯了难.一开始打算使用file.lastModified(),后来才意识到这个只能获取最后修改时间,无法获取文件的创建时间.后来,参考论坛中大神( ...

  9. linux和unix文件没有创建时间,Linux中没有文件创建时间的概念

    在Linux中,没有文件创建时间的概念.只有文件的访问时间.修改时间.状态改变时间.也就是说不能知道文件的创建时间.但如果文件创建后就没有修改过,修改时间=创建时间;如果文件创建后,状态就没有改变过, ...

最新文章

  1. 云计算平台管理的三大利器Nagios、Ganglia和Splunk
  2. 《程序员修炼之道》笔记(九)
  3. python递归面试题_汉诺塔问题其实很简单 Python 递归经典面试题
  4. 如何用DOS命令查看占用某端口的程序及PID号
  5. Timer的schedule和scheduleAtFixedRate方法的区别解析(转)
  6. Node编写API接口,ajax实现增删改查
  7. eclipse java开发实例_eclipse+webservice开发实例
  8. 计算机视觉SLAM方向顶会
  9. 图文教程使用一套键鼠控制两台电脑
  10. cJSON基本使用方法
  11. 无损图片压缩-设计师程序员的心头爱
  12. WIN系统仿MAC任务栏工具分享——RocketDock
  13. 消费者购买决策行为研究模型
  14. IS_REACHABLE
  15. 蓝牙耳机品牌推荐:2023年口碑最好的蓝牙耳机品牌排行
  16. 圣斗士星矢重生服务器维护,11月26日全服停机维护公告
  17. Centos配置DNS
  18. iOS查看系统所有字体(带效果图)
  19. Windows 10 下安装gcc
  20. CF 666E 题解

热门文章

  1. 邮件发送退信分析大全/SMTP error, RCPT TO: 550 Relay Deny
  2. 打印出所有的中文字符
  3. 在 Ubuntu 下安装 Discuz! 7.0
  4. nginx css 304 导致图片丢失_Nginx 从入门到实战
  5. netbeans 添加gif图片_怎么制作动态图片?手机如何制作清晰gif动图?
  6. 使用vue加svg实现流程图代码_京东风格的移动端Vue组件库NutUI2.0来啦
  7. c语言中小数乘法怎样写程序,四年级下册lbrack;小数乘法rsqb;知识点归纳
  8. pic16f630 c语言编程,PIC16f630简单练习程序
  9. Nginx设置成服务并开机自动启动的配置详解
  10. 大神教你实现redis键空间通知