2013-04-15 127 views
1

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

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条件。我需要做什么,它没有报价。

回答

1

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

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

1

你并不需要把周围的值引号中查询字符串,定义他们都串......

你的查询字符串应该是这样的:

register.aspx?id=jSmith 
1

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

它应该阅读

register.aspx?id=jSmith 
2

的代码是正确的。 问题在于,您传递到带有双引号的页面"jSmith"作为字符串的一部分。 尝试调用页面这样

register.aspx?id=jSmith 
1

你应该寻找

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

\脱逃额外"

,或者你可以进行更换,以除去多余的"

1

使用

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

,并在页面Qstring.aspx加载事件

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

插上U s中的变量

“史密斯”