У меня есть один обработчик изображения, который показывает изображение.когда база данных не имеет записей относительно своего идентификатора пользователя, тогда изображение по умолчанию показывается одновременно.вот мой код для обработчика:
<%@ WebHandler Language="C#" Class="ImageHandler" %>
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Web;
using System.Text;
using System.Data;
using System.Linq;
public class ImageHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.Clear();
if (!string.IsNullOrEmpty(context.Request.QueryString["id"]))
{
int id = int.Parse(context.Request.QueryString["id"]);
Image image = null;
if (GetImage(id).PropertyItems.Length > 0)
{
image = GetImage(id);
context.Response.ContentType = "image/jpeg";
image.Save(context.Response.OutputStream, ImageFormat.Jpeg);
}
else
{
image.Save(HttpContext.Current.Server.MapPath("~/img/profile_user.jpg").ToString());
}
}
else
{
context.Response.ContentType = "text/html";
context.Response.Write("<p>Need a valid id</p>");
}
}
public bool IsReusable
{
get
{
return false;
}
}
private Image GetImage(int id)
{
using (DataClassesDataContext db = new DataClassesDataContext())
{
int getProfileID = db.ProfilePhotos.Where(p => p.UserID.Equals(id)).Select(p => p.ProfileID).FirstOrDefault();
MemoryStream stream = null;
if (getProfileID > 0)
{
byte[] imgData = db.ProfilePhotos.Where(p => p.UserID.Equals(id)).Select(p => p.ProfileImage).FirstOrDefault().ToArray();
stream = new MemoryStream(imgData);
}
return Image.FromStream(stream);
}
}
}
и вот мой код для получения изображения из этого обработчика:
imgUser.ImageUrl = "~/ImageHandler.ashx?id=" + CommonLogic.GetSessionValue("user_id").ToString();
как бы это ни работало нормально, когда user_id существует, тогда как нет изображенияотобразить как:
![enter image description here](https://i.stack.imgur.com/unel5.png)
что с этим не так.пожалуйста, помогите мне ...