Generic Handler没有在asp.net中调用

时间:2012-10-27 07:32:11

标签: asp.net image httphandler

我正在尝试从我的数据库中显示图像。我有一个通用处理程序来显示图像。但我的问题是它没有被调用。我调用处理程序的代码是

Image1.ImageUrl = "~/ShowImage.ashx?id=" + id;

其中id是数字, ShowImage.ashx 是处理程序。 .ashx 文件中的断点也不会受到影响。我是 asp.net 的新手。所以任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

在这种情况下,您需要遵循的步骤是查看html的呈现方式。

因此,右键单击html页面,然后“查看页面源”。

找到调用ShowImage.ashx的点,并查看完整渲染路径是否正确。

从那里你可以简单地纠正路径。

另外,您可以使用浏览器工具查看浏览器查找的内容,以及是否找到它。例如,在Google Chrome上右键单击,然后检查元素,然后单击网络。在那里你可以看到红色,你的页面找不到什么文件,你需要修复路径。

答案 1 :(得分:1)

检查此示例示例代码,这可能会对您有所帮助。

ASPX代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h1>
            HTTP Handler class Impliment in Img tag
        </h1>
        <h1>Id : 1</h1>
        <img src="ImageHandler.ashx?id=1" alt="Dynamic Image" />

        <h1>Id : 2</h1>
        <img src="ImageHandler.ashx?id=2" alt="Dynamic Image" />

    </div>
    </form>
</body>
</html>

C#示例(ImageHandler.ashx文件):

<%@ WebHandler Language="C#" Class="ImageHandler" %>

using System;
using System.Web;

public class ImageHandler : IHttpHandler {

    public void ProcessRequest (HttpContext context) {
        //context.Response.ContentType = "text/plain";
        //context.Response.Write("Hello World");
        context.Response.ContentType = "image/jpeg";
        if (context.Request.QueryString["id"] == "1")
        {
            context.Response.WriteFile("bamboo.jpg");
        }
        else
        {
            context.Response.WriteFile("palmtree.jpg");
        }


    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}

以下是可下载的C#示例和VB.Net示例。的 Click Here...