asp.net查询字符串

时间:2013-04-15 15:24:03

标签: asp.net request.querystring

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

 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条件。我需要做什么,因为它没有引号。

6 个答案:

答案 0 :(得分:2)

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

register.aspx?id=jSmith

答案 1 :(得分:1)

你不需要在querystring中的值中加上引号,根据定义它们都是字符串......

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

register.aspx?id=jSmith

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

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

应该阅读

register.aspx?id=jSmith

答案 4 :(得分:1)

你应该寻找

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

\正在逃避额外的"

或者您可以执行替换以删除额外的"

答案 5 :(得分:1)

使用

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

并在页面Qstring.aspx加载事件

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

在s变量中给出“smith”