在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一提到Ashx文件,我们就会想到http handler以及图片加载(在之前我们一般使用ASPX或者Webservice去做),一般做法如下: Handler.ashx: 复制代码 代码如下: <%@ WebHandler Language="C#" Class="Handler" %> using System; using System.IO; using System.Web; public class Handler : IHttpHandler { public bool IsReusable { *.aspx: <img src="myHttpHander.ashx?id=123" width="20" height="20" /> 我们变通以下,发现其实除了可以输出图片以外,还可以输出文字: 复制代码 代码如下: <%@ WebHandler Language="C#" Class="Handler" %> using System; using System.Web; public class Handler : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.Write("alert('hi')"); } public bool IsReusable { *.aspx: 弹出alert <script src="Handler.ashx"></script> 也可以把.ashx当成css文件 <link href="css/Handler.ashx" rel="stylesheet" type="text/css"> xml文件 还可以嵌入文字: 复制代码 代码如下: <%@ WebHandler Language="C#" Class="TestHandler" %> using System; using System.Web; public class TestHandler : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.Write("document.write(\"Hello World\");"); }
public bool IsReusable { *.aspx: <script type="text/javascript" src="TestHandler.ashx" /> 当你希望从ashx或HttpHandler里访问你的Session时,你必须实现IReadOnlySessionState接口. 代码: 复制代码 代码如下: using System; using System.Web; using System.Web.SessionState; public class DownloadHandler : IHttpHandler, IReadOnlySessionState 其实,学习的思路不应该这样,以上除了图片外,我们都用偏了,为什么用偏了呢,因为软件以简单、实用为主,我们只是把以上纯粹看成可一项技术而没有把它放到软件的地位去考虑:) 具体的用途,大家可以参考Rewirte.dll (这个dll,可以使服务器支持伪静态的) |
请发表评论