将参数传递给 C# 中的通用处理程序

Yoa*_*v24 1 c# asp.net generic-handler

我有一个用于 ASP.NET 网站的通用处理程序 (.ashx),它允许我从存储在 SQL Server 数据库中的二进制数据查看图像文件:

public class ImageProvider : IHttpHandler {

            public string connString = "...";

            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "image/jpeg";

                string sqlSelectQuery = "select img from Subjects Where [Id] = 'XXXX'";
                SqlConnection conn = new SqlConnection(connString);
                conn.Open();
                SqlCommand cmd = new SqlCommand(sqlSelectQuery, conn);

                byte[] img = (byte[])cmd.ExecuteScalar();
                context.Response.BinaryWrite(img);

            }
Run Code Online (Sandbox Code Playgroud)

我目前正在使用简单的 Response.Redirect() 命令将处理程序连接到网站的其余部分:

 Response.Redirect("ImageProvider.ashx");
Run Code Online (Sandbox Code Playgroud)

我的问题是 - 在调用通用处理程序时如何传递任何类型的变量参数(sql 查询中的 XXX)?

非常感谢

Mag*_*nus 5

使用查询字符串。

处理中请求:

var Id = context.Request.QueryString["Id"];
Run Code Online (Sandbox Code Playgroud)

用法:

Response.Redirect("ImageProvider.ashx?Id=100");
Run Code Online (Sandbox Code Playgroud)