1

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

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

4

6 回答 6

2

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

register.aspx?id=jSmith
于 2013-04-15T15:25:54.467 回答
1

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

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

register.aspx?id=jSmith
于 2013-04-15T15:25:24.790 回答
1

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

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

于 2013-04-15T15:25:33.297 回答
1

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

它应该读

register.aspx?id=jSmith
于 2013-04-15T15:25:49.610 回答
1

你应该寻找

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

正在\逃避额外的"

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

于 2013-04-15T15:26:00.737 回答
1

采用

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

并在页面 Qstring.aspx 加载事件

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

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

于 2013-04-15T16:00:46.333 回答