【发布时间】:2012-09-05 20:20:05
【问题描述】:
我正在使用 HttpHandler 从数据库中检索图像,然后在我的网页 (aspx) 上的 Image Web 控件中使用 Handler 作为 ImageUrl。代码如下所示。但它不起作用,到目前为止我不知道为什么。问题是 HttpHandler 永远不会被命中,如果我将断点保留在 processrequest() 它永远不会被命中
下面是Handler中的简单代码
public class ImageHandler : IHttpHandler
{
StaffMemberRepository db = new StaffMemberRepository();
public void ProcessRequest(HttpContext context)
{
int id = Convert.ToInt32(context.Request.QueryString["id"].ToString());
byte[] image = db.GetImage(id);
context.Response.ContentType = "image/jpg";
context.Response.BinaryWrite(image);
}
public bool IsReusable
{
get
{
return false;
}
}
}
以下是我网页中的标记
asp:Image ID="imgStaff" runat="server" ImageAlign="Middle" ImageUrl="~/Handlers/ImageHandler.ashx?id=2"
谁能告诉我我在这里做错了什么?
【问题讨论】:
-
能否提供您注册处理程序的 Web 配置部分?
-
您是否将浏览器指向此:Handlers/ImageHandler.ashx?id=2 ?
-
我还没有在 Web.config 中添加任何内容。我的想法可能很愚蠢,但我认为就我在本地机器上使用 ASP DEV 服务器而言,我可以跳过 web.config 部分。如果不是这样,请纠正我。
-
@Jack - 在我粘贴的标记代码中,您可以看到 Imageurl 指向 ~/Handlers/ImageHandler.ashx?id=2。
标签: c# asp.net .net httphandler