ASP.Net и NameValueCollection - PullRequest
       4

ASP.Net и NameValueCollection

0 голосов
/ 06 марта 2010

У меня есть следующий метод:

public object[] GetEventsByUser(DateTime start, DateTime end, string fullUrl)

Значение fullUrl:

http://localhost:50435/page/view.aspx?si=00&us=admin&ut=smt&

Когда я делаю:

NameValueCollection qscoll = HttpUtility.ParseQueryString(fullUrl);

Я получаю:

{HTTP% 3A% 2F% 2flocalhost% 3a50435% 2fpage% 2fview.aspx% 3fsi = 00 & нами = админ & ут = смт &}

Но мне нужно получить параметры в QueryString этой страницы, и с этим значением я не могу получить значение "si", поскольку закодирован знак вопроса, который запускает строку запроса. Поэтому я подумал: «Хм ... Я должен попытаться сделать HttpUtility.HtmlEncode ()»

Однако метод HtmlEncode возвращает void: Однако второй параметр этого метода отправляет значение в TextWriter. Но это не коллекция NameValue.

Возможно, решение простое ... но я его не вижу.

Ответы [ 2 ]

1 голос
/ 06 марта 2010

Вы можете попробовать:

var si = Request["si"];
var user = Request["us"];
//etc.
1 голос
/ 06 марта 2010

Перед синтаксическим анализом необходимо урезать его до строки запроса, например:

if (fullUrl.Contains("?")) {
  fullUrl = fullUrl.Substring(fullUrl.IndexOf("?") + 1);
}
NameValueCollection qscoll = HttpUtility.ParseQueryString(fullUrl);
...