asp.net handler.ashx仅在ajax中刷新时运行

时间:2013-11-07 12:27:55

标签: asp.net ajax

我试图在运行时在asp.net页面中显示图像 所以我写了一个处理程序页面。并使用该页面作为网址源 像按钮点击事件中的image.imageurl =“〜/ handler.ashx”。

然而,当我将我的图像框和按钮放在ajax更新面板中时。 处理程序内部的代码仅在页面加载后第一次单击时执行,而不是在第二次单 我需要刷新页面。如何在不点击按钮的情况下刷新图像更新?

提前感谢。

2 个答案:

答案 0 :(得分:0)

代码 返回从wcf服务获取的图像的处理程序

public class Handler : IHttpHandler
{
    imageService.HelloWorldServiceClient cli = new imageService.HelloWorldServiceClient();

public void ProcessRequest (HttpContext context)
{
    byte [] buffer = cli.getImage();
    context.Response.ContentType = "image/jpeg";
    context.Response.Buffer = true;
    context.Response.BinaryWrite(buffer);
    context.Response.Flush();
    context.Response.End();
}

我可以点击按钮

使用下面的代码
 Image1.ImageUrl = "~/Handler.ashx";

图像控件和按钮都在ajax更新面板中。

答案 1 :(得分:0)

好吧我通过对代码进行以下更改来解决问题

protected void Button1_Click(object sender, EventArgs e)
{
    Image1.ImageUrl = "~/Handler.ashx?guid=" + Guid.NewGuid();
}

关键是每次都需要一个新网址。

的更多细节

Using ASP.NET AJAX UpdatePanel with Handlers