データベースから画像を表示しようとしています。画像を表示するための汎用ハンドラーがあります。しかし、私の問題は、それが呼び出されないことです。ハンドラーを呼び出すための私のコードは
Image1.ImageUrl = "~/ShowImage.ashx?id=" + id;
ここで、id は数値で、ShowImage.ashxはハンドラーです。.ashxファイルのブレークポイントもヒットしません。私はasp.netが初めてです。したがって、どんな助けでも大歓迎です。
データベースから画像を表示しようとしています。画像を表示するための汎用ハンドラーがあります。しかし、私の問題は、それが呼び出されないことです。ハンドラーを呼び出すための私のコードは
Image1.ImageUrl = "~/ShowImage.ashx?id=" + id;
ここで、id は数値で、ShowImage.ashxはハンドラーです。.ashxファイルのブレークポイントもヒットしません。私はasp.netが初めてです。したがって、どんな助けでも大歓迎です。
このサンプルサンプルコードを確認してください。これが役立つ場合があります。
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 の例です。ここをクリック...
この場合に従う必要がある手順は、html がどのようにレンダリングされるかを確認することです。
そのため、html ページを右クリックし、「ページのソースを表示」します。
が呼び出されたポイントを見つけて、ShowImage.ashx
レンダリングされた完全なパスが正しいかどうかを確認します。
そこから、パスを修正するだけです。
さらに、ブラウザー ツールを使用して、ブラウザーが何を探しているか、それが見つかったかどうかを確認できます。たとえば、Google Chrome では、右クリックして要素を検査し、ネットワークをクリックします。ページで見つからないファイルが赤色で表示され、パスを修正する必要があります。