Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 第二个参数干扰泛型处理程序_C#_Asp.net_Parameters_Webforms_Generic Handler - Fatal编程技术网

C# 第二个参数干扰泛型处理程序

C# 第二个参数干扰泛型处理程序,c#,asp.net,parameters,webforms,generic-handler,C#,Asp.net,Parameters,Webforms,Generic Handler,我的问题是这个。当我只有一个参数可供搜索时,我的图像控件工作,当我尝试传递第二个参数时,图像控件不工作。 我使用一个通用处理程序作为image.URL,因为我希望能够从数据库中提取图像,或者从驱动器中选择一个图像来替换数据库副本 好的,在删除了对version的所有引用(这是导致问题的第二个参数)之后,我发现这一行string version=context.Request.QueryString[“version”].ToString()导致问题 我的代码如下 public class Im

我的问题是这个。当我只有一个参数可供搜索时,我的图像控件工作,当我尝试传递第二个参数时,图像控件不工作。 我使用一个通用处理程序作为image.URL,因为我希望能够从数据库中提取图像,或者从驱动器中选择一个图像来替换数据库副本

好的,在删除了对version的所有引用(这是导致问题的第二个参数)之后,我发现这一行
string version=context.Request.QueryString[“version”].ToString()导致问题

我的代码如下

 public class ImageHandler : IHttpHandler
{       
    public void ProcessRequest(HttpContext context)
    {
        TemplateData imgData = null;
        string schemeCode = context.Request.QueryString["schemeCode"].ToString();
        string version = context.Request.QueryString["Version"].ToString();

        if(!String.IsNullOrEmpty(schemeCode)) imgData  = DataClass.ReturnData(schemeCode);


        if (imgData != null)
        {
            context.Response.ContentType = "image/jpeg";
            context.Response.BinaryWrite(imgData.Logo);
            context.Response.OutputStream.Write(imgData.Logo, 0, imgData.Logo.Length);

        }
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}
}

女生在后面

        protected void btnSearch_Click(object sender, EventArgs e)
    {
        if (ddSchemeCode.SelectedIndex > 0)
        {
            // Existing Data to load from database
            TemplateData temp = DataClass.ReturnData(ddSchemeCode.SelectedItem.Text);
            if (temp != null)
            {

                txtVersion.Text = temp.Version;
                txtComment.Text = temp.Comment;
                txtSchemeCode.Text = temp.SchemeCode;
                txtTemplateId.Text = temp.TemplateId;
                imgLogo.ImageUrl = String.Format("ImageHandler.ashx?schemeCode={0}", ddSchemeCode.SelectedItem.Text);
            }
        }
ReturnData
方法

        public static TemplateData ReturnData(string schemeCode)
    {
        string sqlInstructionCstmID = "SELECT TOP(1) LetterTemplateCustomisationId, TemplateId, Logo, SchemeCode, Version, Comment FROM LetterTemplateCustomisation WHERE SchemeCode ='" + schemeCode + "' ";

        string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["LettersDatabase"].ConnectionString;
        SqlConnection connect = new SqlConnection(connectionString);

        SqlCommand command = new SqlCommand(sqlInstructionCstmID, connect);

        command.CommandType = CommandType.Text;

        connect.Open();

        SqlDataReader dr = command.ExecuteReader();

        TemplateData tempData = null;
        if (dr.HasRows)
        {
            dr.Read();
            tempData = new TemplateData(dr);
        }

        dr.Close();
        connect.Close();

        return tempData;
    }
因此,如果我将一个额外的参数传递到
ReturnData
方法中,则不会出现图像

非常欣赏男人们。
谢谢

我创建了一个测试来模拟您试图执行的操作,但错误只发生了一次,我无法再复制它了。我意识到我并不总是在编译代码。然后我开始一直编译,错误不再发生

你可以检查代码

就打电话 ~/Handler1.ashx?schemeCode=where&Version=a ~/Handler1.ashx?schemeCode=where&Version=b 或 ~/Handler1.ashx?schemeCode=where&Version=c

你应该看到三张不同的图片

在访问以下行中的查询字符串后,您正在调用.ToString():

        string schemeCode = context.Request.QueryString["schemeCode"].ToString();
    string version = context.Request.QueryString["Version"].ToString();

如果在您的测试中,您在更改此行时忘记编译,您可能会有一些不一致的行为,因为它可能引发NullReferenceException。

先生,您绝对是一个传奇人物。真不敢相信这是像
&
那么简单的事情非常感谢japonex