ashx檔案,我們可用用來作圖檔加載(在之前我們一般使用aspx或者webservice去做),一般做法如下:
handler.ashx:

1
<%@ webhandler language="c#" class="handler" %>
2
using system;
3
using system.io;
4
using system.web;
5
public class handler : ihttphandler {
6
7
public bool isreusable {
8
get {
9
return true;
10
}
11
}
12
public void processrequest (httpcontext context) {
13
context.response.contenttype = "image/jpeg";
14
context.response.cache.setcacheability(httpcacheability.public);
15
context.response.bufferoutput = false;
16
photosize size;
17
switch (context.request.querystring["size"]) {
18
case "s":
19
size = photosize.small;
20
break;
21
case "m":
22
size = photosize.medium;
23
24
case "l":
25
size = photosize.large;
26
27
default:
28
size = photosize.original;
29
30
}
31
int32 id = -1;
32
stream stream = null;
33
if (context.request.querystring["photoid"] != null && context.request.querystring["photoid"] != "") {
34
id = convert.toint32(context.request.querystring["photoid"]);
35
stream = photomanager.getphoto(id, size);
36
} else {
37
id = convert.toint32(context.request.querystring["albumid"]);
38
stream = photomanager.getfirstphoto(id, size);
39
40
if (stream == null) stream = photomanager.getphoto(size);
41
const int buffersize = 1024 * 16;
42
byte[] buffer = new byte[buffersize];
43
int count = stream.read(buffer, 0, buffersize);
44
while (count > 0) {
45
context.response.outputstream.write(buffer, 0, count);
46
count = stream.read(buffer, 0, buffersize);
47
48
49
50
51

*.aspx:
<img src="myhttphander.ashx?id=123" width="20" height="20" />
我們變通以下,發現其實除了可以輸出圖檔以外,還可以輸出文字:

public void processrequest (httpcontext context) {
context.response.contenttype = "text/plain";
context.response.write("alert('hi')");
}
public bool isreusable {
get {
return false;
}

彈出alert
<script src="handler.ashx"></script>
也可以把.ashx當成css檔案
<link href="css/handler.ashx" rel="stylesheet" type="text/css">
xml檔案
orderdoc.load("handler.ashx");
還可以嵌入文字:

<%@ webhandler language="c#" class="testhandler" %>
public class testhandler : ihttphandler {
context.response.write("document.write(\"hello world\");");

<script type="text/javascript" src="testhandler.ashx" />
歡迎加群互相學習,共同進步。qq群:ios: 58099570 | android: 330987132 | go:217696290 | python:336880185 | 做人要厚道,轉載請注明出處!http://www.cnblogs.com/sunshine-anycall/archive/2009/07/08/1519022.html