我有以下页面查询字符串:
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条件。我需要做什么,因为它没有引号。
答案 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”