Aspx Seiten sind unschlagbar beim Entwerfen von Web Formularen. Möchte man aber z. B. nur ein dynamisches Image erzeugen oder eine Datei zum Download anbieten, benötigt man aber den "Overhead" den die Web Formulare mitbringen (Page Events, Server Side Tags, etc. ) nicht.
Hierfür gibt es Generic Handlers.
Diese haben die Dateiendung ASHX:
Dieses Beispiel schreibt einen vertikal verlaufenden Text als jpeg, was beispielsweise für Tabellenüberschriften verwendet werden könnte.
1 <%@ WebHandler Language="C#" Class="SampleHandler" %>
2
using System;
3
using System.Web;
4
using System.Drawing;
5
using System.Drawing.Imaging;
6
using System.Drawing.Drawing2D;
7
8
public
class
Handler : IHttpHandler
9 {
10
11
public
void ProcessRequest(HttpContext context)
12 {
13
14
string text = context.Request.QueryString["text"];
15
16 System.IO.MemoryStream memStream = new System.IO.MemoryStream();
17 Bitmap bitmap = new Bitmap(100, 20, PixelFormat.Format32bppRgb);
18
19 Graphics graphic = Graphics.FromImage(bitmap);
20
21 graphic.SmoothingMode = SmoothingMode.HighSpeed;
22 graphic.Clear(Color.White);
23 graphic.DrawString(text, new Font("Arial", 12), Brushes.Black, 0, 0);
24
25 bitmap.RotateFlip(RotateFlipType.Rotate270FlipNone);
26 bitmap.Save(memStream, ImageFormat.Jpeg);
27
28 context.Response.ContentType = "image/jpeg";
29 context.Response.BinaryWrite(memStream.ToArray());
30 context.Response.End();
31
32 }
33
34
public
bool IsReusable
35 {
36
get
37 {
38 return
false;
39 }
40 }
41}
Das Resultat des Beispiels ist ein Image. Und all das ohne die Page Events und den Page LifeCycle von ASPX.
0 Kommentare:
Kommentar veröffentlichen