【问题标题】:asp.net querystringasp.net 查询字符串
【发布时间】:2013-04-15 15:24:02
【问题描述】:

我有以下页面查询字符串:

 register.aspx?id="jSmith"

我有以下代码来检索 ID 的值

    string qString = string.IsNullOrEmpty(Request.QueryString["id"]) ? string.Empty : HttpUtility.UrlDecode(Request.QueryString["id"]);

当我查看 qString 的值时,我得到类似的东西

    "\"jSmith\""

所以当我执行以下操作时:

     if (qString == "jSmith")
     {
        ........

     }

它不执行 if 条件。如果它没有引号,我需要做什么。

【问题讨论】:

    标签: asp.net request.querystring


    【解决方案1】:

    代码是正确的。 问题是您将双引号作为字符串的一部分传递到页面"jSmith"。 尝试以这种方式调用页面

    register.aspx?id=jSmith
    

    【讨论】:

      【解决方案2】:

      这是因为在这种情况下给出路径的正确方法是register.aspx?id=jSmith,不带引号。如果您的 ID 中需要空格或其他特殊字符,这些应该是 URL 编码的(并将由您的代码解码),但 括在引号中。

      例如,如果您的 id 是字符串 john smith,则 URL 将变为 register.aspx?id=john+smith,因为 + 是空格的 URL 编码。

      【讨论】:

        【解决方案3】:

        您不需要在查询字符串中的值周围加上引号,根据定义,它们都是字符串...

        您的查询字符串应如下所示:

        register.aspx?id=jSmith
        

        【讨论】:

          【解决方案4】:

          您的查询字符串中不需要引号。

          它应该是

          register.aspx?id=jSmith
          

          【讨论】:

            【解决方案5】:

            你应该寻找

            if (qString == "\"jSmith\"")
            

            \ 正在逃避额外的"

            或者您可以执行替换以删除多余的"

            【讨论】:

              【解决方案6】:

              使用

               Response.Redirect("Qstring.aspx?name= smith");
              

              和页面上Qstring.aspx的加载事件

               string s=Request.QueryString["name"].ToString();
              

              在 s 变量中给你“史密斯”

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2016-07-19
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多