2012-10-27 1 views
2

데이터베이스에서 이미지를 표시하려고합니다. 이미지를 표시하려면제네릭 처리기가 있습니다. 하지만 제 문제는 그것이 불리지 않는다는 것입니다. 핸들러를 호출 내 코드는 ID가 숫자와 ShowImage.ashx 핸들러입니다asp.net에서 일반 핸들러가 호출되지 않습니다.

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

입니다. .ashx 파일의 중단 점이 나타나지 않습니다. 나는 asp.net을 처음 사용하고 있습니다. 그래서 어떤 도움을 주시면 감사하겠습니다.

+0

핸들러 코드를 공유 할 수 있습니까? –

답변

1

이 경우에 따라야 할 단계는 html이 렌더링되는 방법을 확인하는 것입니다.

그래서 html 페이지를 마우스 오른쪽 버튼으로 클릭하고 "페이지 소스보기"를 클릭하십시오.

ShowImage.ashx이 호출되는 지점을 찾고 렌더링 된 전체 경로가 정확한지 확인하십시오.

여기에서 경로를 간단히 수정하십시오.

추가 브라우저 도구를 사용하여 검색 할 브라우저를 찾고 해당 브라우저를 찾을 수 있습니다. 예를 들어 Google 크롬에서 마우스 오른쪽 버튼을 클릭 한 다음 요소를 검사하고 네트워크를 클릭합니다. 빨간색으로 페이지에서 찾을 수없는 파일을 볼 수 있으며 경로를 수정해야합니다.

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...