Обработчик Ashx не может быть использован через <asp:Image> элемент управления
-
19-08-2019 - |
Вопрос
В приложении ASP.NET 3.5 я создал обработчик ashx, как показано ниже:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Web.Services;
namespace TestWebConfig
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Handler1 : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "image/jpg";
BinaryReader br = new BinaryReader(File.Open( @"d:\Temp\images\AutumnLeaves.jpg", FileMode.Open ));
int bufferLength = 1000;
do
{
byte[] buffer = br.ReadBytes(bufferLength);
context.Response.OutputStream.Write(buffer, 0, buffer.Length);
if (buffer.Length < bufferLength)
{
break;
}
} while (true);
br.Close();
}
public bool IsReusable
{
get
{
return true;
}
}
}
}
На странице aspx, если я укажу:
<img alt="alt2" src="Handler1.ashx" style="border-width:0px"/>
затем веб-страница загружается в браузер вместе с изображением.С другой стороны, если я использую:
<asp:Image ID="Image2" runat="server" />
и в коде-за:
protected void Page_Load(object sender, EventArgs e)
{
Image2.ImageUrl = "Handler1.asxh";
}
тогда элемент управления Image2 не загружает изображение, хотя связанный html-код выглядит одинаково.Отображается только текст alt.Что случилось?
Спасибо
Решение
Во-первых, в вашей Page_Load похоже, что вы указали ей неправильное расширение, но я не думаю, что проблема в этом.
Не связан с StackOverflow