回答編集履歴

1

追記

2017/05/03 01:37

投稿

退会済みユーザー
test CHANGED
@@ -13,3 +13,159 @@
13
13
 
14
14
 
15
15
  そして、そのコードをコピペするなりして実際に動かしてみてください。その上で疑問があれば聞くようにした方がいいと思います。
16
+
17
+
18
+
19
+ ****** 2017/5/3 10:35 追記 ******
20
+
21
+
22
+
23
+ 私の 2017/05/03 10:07 のコメントで「後で回答欄にサンプルを書いておきます」と書きましたが、それを以下に書いておきます。コードは C# ですが、意味は分かりますよね?
24
+
25
+
26
+
27
+ 質問者さんのケースで html ソースをどのように生成・取得するのか分かりませんが、html, head, body タグ等を含めた完全な html ソースとして生成・取得できれば、その文字列(以下のサンプルでは source がそれ)を HttpResponse.Write メソッドを使って送信することができます。
28
+
29
+
30
+
31
+ 以下のコードは、Visual Studio の「新しい項目の追加」で「ジェネリックハンドラー」を選んで 0004-HttpHandler.ashx という名前で追加したハンドラのコードに手を加えています。
32
+
33
+
34
+
35
+ (以下の例は Web サイトプロジェクトのものです。Web アプリケーションプロジェクトでは C# のコードは別ファイルになるので注意)
36
+
37
+
38
+
39
+ ```
40
+
41
+ <%@ WebHandler Language="C#" Class="_0004_HttpHandler" %>
42
+
43
+
44
+
45
+ using System;
46
+
47
+ using System.Web;
48
+
49
+
50
+
51
+ public class _0004_HttpHandler : IHttpHandler {
52
+
53
+
54
+
55
+ public void ProcessRequest (HttpContext context)
56
+
57
+ {
58
+
59
+ // このサンプルではキャッシュを許可しない。応答ヘッダーは次のようになる。
60
+
61
+ // Cache-Control: no-cache
62
+
63
+ // Pragma: no-cache
64
+
65
+ // Expires: -1
66
+
67
+ context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
68
+
69
+ context.Response.Cache.SetExpires(DateTime.Now.ToUniversalTime());
70
+
71
+ context.Response.Cache.SetMaxAge(new TimeSpan(0, 0, 0, 0));
72
+
73
+
74
+
75
+ context.Response.ContentType = "text/html";
76
+
77
+ context.Response.Clear();
78
+
79
+
80
+
81
+ string source = @"<html>
82
+
83
+ <head>
84
+
85
+ <title>テスト用 html ページ</title>
86
+
87
+ </head>
88
+
89
+ <body>
90
+
91
+ <h1>Hello World!<h1>
92
+
93
+ </body>
94
+
95
+ </html>";
96
+
97
+
98
+
99
+ context.Response.Write(source);
100
+
101
+ }
102
+
103
+
104
+
105
+ public bool IsReusable
106
+
107
+ {
108
+
109
+ get
110
+
111
+ {
112
+
113
+ return false;
114
+
115
+ }
116
+
117
+ }
118
+
119
+
120
+
121
+ }
122
+
123
+ ```
124
+
125
+
126
+
127
+ ブラウザから 0004-HttpHandler.ashx を要求すれば、ブラウザの画面には Hello World! と表示されます。応答ヘッダとコンテンツは以下のようになります。
128
+
129
+
130
+
131
+ ```
132
+
133
+ HTTP/1.1 200 OK
134
+
135
+ Cache-Control: no-cache
136
+
137
+ Pragma: no-cache
138
+
139
+ Content-Type: text/html; charset=utf-8
140
+
141
+ Expires: -1
142
+
143
+ Server: Microsoft-IIS/10.0
144
+
145
+ X-AspNet-Version: 4.0.30319
146
+
147
+ X-Powered-By: ASP.NET
148
+
149
+ Date: Wed, 03 May 2017 00:56:15 GMT
150
+
151
+ Content-Length: 119
152
+
153
+
154
+
155
+ <html>
156
+
157
+ <head>
158
+
159
+ <title>テスト用 html ページ</title>
160
+
161
+ </head>
162
+
163
+ <body>
164
+
165
+ <h1>Hello World!<h1>
166
+
167
+ </body>
168
+
169
+ </html>
170
+
171
+ ```