.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,用来输出一些不需要回发处理的项目即可。
分享到:
相关推荐
首先,我们需要理解ashx文件的本质。在ASP.NET中,.ashx文件是HTTP Handler,它是一个接口(IHttpHandler),用于处理HTTP请求而不是像.aspx页面那样处理用户界面。开发者可以创建自定义的HTTP处理程序来响应特定...
以前的我,用惯了 UpdatePanel UpdateProgress 等控件,甚至到了滥用的程度,... 这次的Jquery分页 是与 .ashx文件配合的。 建立三个.ashx,分别为PreviewHandler.ashx,PageHandler.ashx,NextHandler.ashx,分别来处
【ASP.NET编程知识】.ashx文件不能访问Session值的解决方法.docx
arcgis for javascript api所需要的配置文件,能解决跨域访问的问题,我在proxy....包含两个文件proxy.ashx,proxy.config两个文件,上次下载一个说是有两个文件,其实里面只有一个,有被骗了的感觉,所以这次上传上来
CEMS:Menu.ashx.cs文件,在系統的ASAX下!!!!!!!!!!!!!!!!!!
1. **创建proxy.ashx文件**:根据提供的源代码或者下载的包,创建一个ASP.NET的HTTP处理程序。 2. **配置IIS**:将proxy.ashx添加到IIS站点中,并设置正确权限。 3. **设置ArcGIS服务**:在ArcGIS Server上,为...
以下是关于解决jquery向.ashx文件post中文乱码问题的详细知识点。 首先,从环境中可以看到,开发者使用的是Visual Studio 2005,并且由于未安装SP1补丁,无法创建Web应用程序,因此只能创建网站。使用的jquery版本...
CEMS:DefaultMain.ashx.cs!!!!!!!!!!!!!!!!!!!!!!
下面将详细介绍如何通过结合***、jquery以及.ashx文件来实现分页功能的思路和步骤。 首先,我们需要了解.ashx文件的用途。.ashx文件在***中被称为处理程序,类似于一个小型的webform,但更为轻量级,不需要页面编译...
.ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类,它免去了普通.aspx页面的控件解析以及页面处理的过程。其实就是带HTML和C#的混合文件。 .ashx文件适合产生供浏览器处理的、不需要回发处理的数据格式,...
CEMS:GetLeftMenu.ashx.cs文件,在系統的ASAX下!!!!!!!!!!!!!
ASHX文件是IIS(Internet Information Services)中的HTTP Handler,它可以自定义处理HTTP请求,而不仅仅是ASP.NET页面。 在C#中,文件上传通常涉及到System.Web命名空间中的HttpPostedFileBase类。当用户在HTML...
本文档详细叙述了在web应用开发时,从一个web应用中,借用另一个web应用中的 .ashx文件发生的奇怪问题和解决办法。
然而,当尝试在*.ashx文件中访问Session值时,可能会遇到问题,因为ashx文件默认情况下并不支持Session状态管理。 标题中提到的“*.ashx文件不能访问Session值的解决方法”,指的就是在这些自定义HTTP处理程序中...
微信公众号开发.NET源码亲测可用,修改Web.config文件的值"/> 值"/>和interfaceTest.ashx文件的const string token = "token值";然后发布放到服务器上,微信公众测试号上输入服务器URL(http://***/interfaceTest....
ashx 文件是什么?如何创建 ashx 文件? ashx 文件是一种特殊的文件类型,用于编写 Web 处理程序(HttpHandler)。 ashx 文件实际上是一个混合文件,包含 HTML 和 C# 代码。使用 ashx 文件可以专注于编程,而不需要...
在`.ashx`文件中获取Cookie值是常见的操作,这对于理解和优化Web应用程序的功能至关重要。下面我们将详细讲解如何在`.ashx`文件中创建、读取和测试Cookie值。 首先,我们来看创建Cookie的代码部分: ```csharp ...
* controller.ashx文件是Ueditor编辑器的核心文件,负责处理图片上传和其他操作。 * 在controller.ashx文件中,可以实现图片上传时添加水印的功能。 知识点四:图片处理和水印处理 * 图片处理是指对上传的图片进行...
本文将深入探讨如何使用C#来实现ASHX接口,并结合提供的文件目录结构进行实例解析。 首先,`JieKou`文件夹中的内容很可能是服务器端的接口实现。ASHX接口是基于.NET Framework的HTTP服务组件,它不需要完整的ASP...