2013-04-15 2 views
1

У меня есть следующие строки запроса страницы:asp.net 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. Что мне нужно сделать, чтобы у него не было кавычек.

ответ

1

Это происходит потому, что правильный путь для указания пути в этом случае будет register.aspx?id=jSmith, без кавычек. Если вам нужны пробелы или другие специальные символы, в вашем ID они должны быть закодированы в URL (и будут декодированы вашим кодом), но не, заключенный в кавычки.

Например, если ваш идентификатор был строкой john smith, URL-адрес стал бы register.aspx?id=john+smith, так как + - это URL-кодировка пробела.

1

Вам не нужно ставить кавычки значений в строку запроса, по определению, они все струны ...

Ваш QueryString должен выглядеть следующим образом:

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(); 

дает и "кузнец" в с переменной