0

我有以下方法:

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&us=admin&ut=smt&}

但是我需要获取此页面的QueryString中的参数,并且使用该值,我无法获取“si”值,因为开始查询字符串的问号已被编码。所以我想:“嗯……我应该尝试做 HttpUtility.HtmlEncode()”

但是 HtmlEncode 方法返回 void:但是此方法的第二个参数将值发送到 TextWriter。但它不是 NameValueCollection。

也许解决方案很简单......但我看不到它。

4

2 回答 2

1

在解析之前,您需要将其修剪为仅查询字符串,如下所示:

if (fullUrl.Contains("?")) {
  fullUrl = fullUrl.Substring(fullUrl.IndexOf("?") + 1);
}
NameValueCollection qscoll = HttpUtility.ParseQueryString(fullUrl);
于 2010-03-05T21:56:57.873 回答
1

你可以试试:

var si = Request["si"];
var user = Request["us"];
//etc.
于 2010-03-05T21:57:04.957 回答