Изображение не отображается ASP.NET (универсальный handler.ashx)
К сожалению, я не могу отобразить свое изображение, используя repater и общий обработчик, который я назвал ImageHandler.ashx, возможно, я делаю что-то не так, и я не могу обнаружить ошибку самостоятельно.
Вот мой код (кстати, я впервые использую этот универсальный обработчик в сочетании с повторителем для получения своих изображений из баз данных, и я застрял здесь).
Вот мой код:
<table class="table table-hover" style="margin-top: 50px; background-color: white;">
<tr>
<th>Name</th>
<th>Last Name</th>
<th>Photo</th>
</tr>
<asp:Repeater ID="repPlayers" runat="server" OnItemCommand="repPlayers_ItemCommand">
<ItemTemplate>
<tr>
<td><%# Eval("Name") %></td>
<td><%# Eval("LastName") %></td>
<td>
<asp:Image ID="imageTest" src="~/ImageHandler.ashx?id=PlayerID" runat="server" />
<%--<img id="imageTest" style="width: 60px; height: 30px;" src="data:image/png;base64, <%# Convert.ToBase64String((byte[])Eval("Photo")) %> " />--%>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
ImageHandler.ashx КОД ЗА СОБОЙ:
public class ImageHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
int playerID = Convert.ToInt32(context.Request["PlayerID"]);
Players.Data.DataAccess player = Players.Data.DataAccess.GetByPlayerId(playerID);
context.Response.ContentType = "image/jpeg";
context.Response.BinaryWrite(player.Photo);
}
public bool IsReusable
{
get
{
return false;
}
}
}
Вероятно, я делаю что-то не так, может быть, я должен объединить '<%#Eval("PlayerID")%>'
так или иначе? Если бы я использовал сетку данных, я бы использовал элемент управления Item_dataBound, и это могло бы решить мою проблему, но, к сожалению, я загружаю свои данные здесь в таблицу, и я не знаю, как решить эту проблему..
редактировать: я пробовал это тоже, и это было решение: <asp:Image ID="imageTest" runat="server"
ImageUrl='<%#"~/ImageHandler.ashx?PlayerID="+Eval("PlayerID") %>' />
PS Комментированный код работает, но он загружает изображения медленно, как ад, и это заставляет мою целую страницу загружаться очень медленно, потому что я получаю около 50 объектов из базы данных, и у каждого из них есть изображение:(
ПОТОМУ ЧТО Я РАЗМЕЩАЛ ВЫШЕ, ЧТО БЫЛО РЕШЕНИЕ, МЫ МОЖЕМ УГРОЗИТЬ ЭТО, КАК ЗАКРЫТО
1 ответ
// Вот что я отредактировал, чтобы это работало:
<td>
<asp:Image ID="imageTest" runat="server" style="width: 60px; height: 30px;"
ImageUrl='<%#"~/ImageHandler.ashx?PlayerID="+Eval("PlayerID") %>' />
</td>