2

データベースから画像を表示しようとしています。画像を表示するための汎用ハンドラーがあります。しかし、私の問題は、それが呼び出されないことです。ハンドラーを呼び出すための私のコードは

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

ここで、id は数値で、ShowImage.ashxはハンドラーです。.ashxファイルのブレークポイントもヒットしません。私はasp.netが初めてです。したがって、どんな助けでも大歓迎です。

4

2 に答える 2

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 の例です。ここをクリック...

于 2013-01-28T07:54:58.623 に答える
1

この場合に従う必要がある手順は、html がどのようにレンダリングされるかを確認することです。

そのため、html ページを右クリックし、「ページのソースを表示」します。

が呼び出されたポイントを見つけて、ShowImage.ashxレンダリングされた完全なパスが正しいかどうかを確認します。

そこから、パスを修正するだけです。

さらに、ブラウザー ツールを使用して、ブラウザーが何を探しているか、それが見つかったかどうかを確認できます。たとえば、Google Chrome では、右クリックして要素を検査し、ネットワークをクリックします。ページで見つからないファイルが赤色で表示され、パスを修正する必要があります。

于 2012-10-27T07:52:43.763 に答える