一般处理程序(HttpHandler)是·NET众多web组件的一种,ashx是其扩展名。一个httpHandler接受并处理一个http请求
,类比于Java中的servlet。类比于在Java中需要继承HttpServlet类。在net中需要实现IHttpHandler接口,这个接口有一
个IsReusable成员,一个待实现的方法ProcessRequest(HttpContextctx) 。程序在processRequest方法中处理接受到的
Http请求。成员IsReusable指定此IhttpHandler的实例是否可以被用来处理多个请求。
.ashx程序适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。
实例
一个httpHandler的实例:
<% @ webhandler language="C#" class="AverageHandler" %>
using System;
using System.Web;
public class AverageHandler : IHttpHandler
{
//IsReusable成员,指定此IhttpHnadler的实例是否可以被用来处理多个请求。
public bool IsReusable{ get { return true; } }
//在processRequest方法中处理http请求
public void ProcessRequest1(HttpContext ctx)
{
ctx.Response.Write("hello");
}
}
在浏览器中请求此程序,将会打印hello。
访问Session
让自己的ashx类显式的实现一个接口 IReadOnlySessionState,示例如下:
<% @ webhandler language="C#" class="DownloadHandler" %>
public class DownloadHandler : IHttpHandler, IReadOnlySessionState {
public bool IsReusable { get { return true; }}
public void ProcessRequest2(HttpContext ctx)
{
//在上下文中访问session
//ctx.Session["fred"]);
}
}
如果要读写Session的值,那么只要实现 IRequiresSessionState 接口就即可,这两个接口没有待实现的方法。
解决办法
检查IIS主目录->应用程序设置->配置中,有没有.ashx的后缀;
如果没有,点击添加->C:/WINDOWS/Microsoft.NET/Framework/V2.0.50727/aspnet_isapi.dll;
扩展名填入:.ashx
保存即可解决。
========
https://www.cnblogs.com/chenyucong/p/5777515.html
本文将介绍ashx和html的联合使用方法,尽管目前流行mvc,但handler一般处理程序还是ASP.NET的基础知识,结合html页
面,做出来的网页绝对比WebForm的简洁和效率高。
首先,概要说明一下:
html是过去非常老的一种网页格式,属于静态网页,要想在html上呈现SQL Server上的数据,只能依靠ashx了。
大概的方法是,利用html作为模板,使用ashx读取数据库,替换html中的部分内容,最终显示已替换的html内容。
先给个效果图:
下面开始上代码:
首先做用visual studio,新建一个项目,项目下再新建有footer.htm,header.htm,Index.ashx,Index.htm
另外我已做了一个简单的选取表格信息,显示在input标签中的功能,所以我也用到了jquery.min.js
(屏蔽部分请忽略,是我做的另一个静态页面,与本例无关)
1、首先看的是Index.htm的静态网页代码:
col1 | col2 | col3 |
---|
上图中,第5行至23行