0
我想傳遞一些參數到通用處理程序和獲取和響應圖像。ASP.net通用處理程序
我用我的網頁上的圖片驗證碼:
<a href="#"><img id="slide-3" src="~/Image_Handler.ashx?SL=/SL1&US=Kim&ID=1 alt="Tulips" title="Tulips" /></a>
當我的頁面加載圖像不會加載。然而,我在我的網頁上放了一個按鈕,並給了PostBackUrl相同的URL,它打開了一個新窗口,並顯示圖片完全正常。
這是我的Image_handler代碼(通用處理器)
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web;
namespace WEB_2._0_Programing.Private
{
/// <summary>
/// Summary description for Image_Handler
/// </summary>
public class Image_Handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
String id;
String Slideshow = context.Request.QueryString["SL"];
String Username = context.Request.QueryString["US"];
id = context.Request.QueryString["ID"];
if (Slideshow != null)
{
SqlConnection connection = new SqlConnection("Data Source=KAMY-WIN7\\SQLEXPRESS;Initial Catalog=MainDataBase;Integrated Security=True;Pooling=False");
String query = "SELECT identity(int,1,1) ID,Image into #temp FROM UserImage where (Username = @username) AND (Slideshow = @slideshow) SELECT * FROM #temp WHERE ([email protected])";
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@username", Username);
command.Parameters.AddWithValue("@slideshow", Slideshow);
command.Parameters.Add("@id", SqlDbType.Int).Value = int.Parse(id);
//command.Parameters.Add("@id", SqlDbType.Int).Value = id;
connection.Open();
SqlDataReader dReader = command.ExecuteReader();
dReader.Read();
context.Response.ContentType = "image/jpeg";
Byte[] Image = (Byte[])dReader["Image"];
context.Response.BinaryWrite(Image);
dReader.Close();
connection.Close();
}
context.Response.Write("NOT OK!!!");
}
public bool IsReusable
{
get
{
return true;
}
}
}
}
上這一部分的錯誤是在頁面加載context.Request.QueryString [];不會返回任何值,但是當我使用一個按鈕,並給出相同的src它工作正常.. 請幫助我不知道是什麼問題。
您不必在src屬性的值的末尾關閉報價。 – yoozer8