如何在c#的ashx文件中获取查询字符串

7
我已经查阅了互联网上的资料,发现stackoverflow上有一个答案,但是它是使用vb.net编写的,而我使用的是c#。
我的问题是:在sql server数据库中存储了一张二进制图像。我已经成功地将其加载和检索出来。在gridview中,我有一个用于主/细节页面详细信息的链接。在html部分中,我使用了一个简单的html图像标签,以下是代码:
我正在使用VS2010和C#。
(displayDetail02.aspx)
<body>
<form id="form1" runat="server">
<div>
  <img id="Img1" width="500" 
               runat="server" 
               src="~/getLargeImage.ashx?Businessid=<%Eval(businessid)%>"
               alt="Business Image" 
               style="border: 1px inset"/>
</div>
</form>
</body>

以下是代码:

public partial class displayDetail02 : System.Web.UI.Page
{
   public string businessid = string.Empty;

   protected void Page_Load(object sender, EventArgs e)
   {
      if (!Page.IsPostBack)
      {
        businessid = Request.QueryString["businessid"];
      }
   }
}

(getLargeImage.ashx)

 public partial class getLargeImage : IHttpHandler {


 public void ProcessRequest(HttpContext context)
 {
    HttpContext _context = HttpContext.Current;
    context.Response.ContentType = "image/jpg";
    string businessid = Convert.ToString(context.Request.QueryString["businessid"]);    

  ...

我的问题是查询字符串变量。我尝试了许多不同的方式来格式化来自displayDetail02.aspx的查询字符串,但我似乎无法正确显示参数的 ' 和 "。我一直得到 '<%' 这个字符串,这是查询字符串的第一部分。
我在mozilla中使用firebug查看它时,查询字符串被正确传递,但在ashx文件中没有被正确处理。
我也在代码后台中尝试过,以下是我尝试过的一些代码。
<% --src='<%# "getLargeImage.ashx?Businessid=" + Eval("Businessid") %>' --%>

这只需要一行代码…噢,我知道这个可行,因为当我在ashx(通用处理程序)中硬编码参数时,我可以得到图像。

有人能帮帮我吗?


你的问题与ASHX无关,而是与ASPX页面有关。如果该参数构建正确,您将在处理程序中获得正确的值。 - Rubens Farias
3个回答

10

我这样使用ashx,试着像这样使用:

context.Request.Params["string"]

4
protected void Page_Load(object sender, EventArgs e)
   {
      if (!Page.IsPostBack)
      {
        Img1.Src = "~/getLargeImage.ashx?Businessid=" + Request.QueryString["businessid"];
      }
   }

非常感谢,我知道这只是要找到正确的语法,而且今天我一直不在,但我检查了这段代码,一切都运行良好!再次感谢!事情总是很简单! - Michael Salisbury

0

context.Request.Form["value"]

其中value是您传递的名称。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接