【问题标题】:Read query string paramter from Image Url [asp.net]从 Image Url [asp.net] 读取查询字符串参数
【发布时间】:2015-02-17 04:13:37
【问题描述】:

我使用Generic Handler[.ashx] 创建了一个动态图像,然后从后面的代码将其分配给我的用户控件上的图像。

string capt = //some random logic value.
imgCaptcha.ImageUrl = "~/BO/term.ashx?param=" + capt;

现在在同一个用户控件上的一些按钮事件上,我想读取ImageUrl的查询参数

 protected void btnVerify_Click(object sender, EventArgs e)
 {
     //something like this
     string param = Request.QueryString["param"]

 }

但是 Request.QueryString 不会给我任何东西,因为用户控件被添加到一些 .aspx 页面上 所以请求路径将是相同的.aspx页面,没有查询参数。

但是imgCaptcha.ImageUrl 给我一些路径是~/BO/term.ashx?param=123456

现在我想使用一些 .Net 标准类来阅读这些信息。 有什么可以解决我的问题吗?

注意:我对使用字符串方法不太感兴趣。

【问题讨论】:

    标签: asp.net query-string imageurl


    【解决方案1】:

    您可以生成 uri 并检索查询字符串参数,但是字符串拆分更好:

     Uri uri = new System.Uri(Page.Request.Url, VirtualPathUtility.ToAbsolute(Image1.ImageUrl));
     var parameters = System.Web.HttpUtility.ParseQueryString(uri.Query);
     string value = parameters["param"];
    

    【讨论】:

      【解决方案2】:

      你不能那样做。您只能从term.ashx 阅读它。所以你必须解析ImageURL参数或将参数值保存在某处。

      例如你可以把它保存在ViewState:

      string capt = //some random logic value.
      ViewState["imgCaptchaParameter"] = capt;
      imgCaptcha.ImageUrl = "~/BO/term.ashx?param=" + capt;
      

      并在方法中像这样使用它:

      protected void btnVerify_Click(object sender, EventArgs e)
      {
          //something like this
          string param = ViewState["imgCaptchaParameter"].ToString();
      }
      

      【讨论】:

        猜你喜欢
        • 2012-07-25
        • 2020-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-20
        相关资源
        最近更新 更多