我有以下方法:
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 =管理员&安培; UT = SMT&安培;}
但我需要获取此页面的QueryString中的参数,并且使用此值,我无法获取“si”值,因为启动查询字符串的问号已被编码。 所以我想:“哼......我应该尝试做HttpUtility.HtmlEncode()”
但是HtmlEncode方法返回void:但是此方法的第二个参数将值发送给TextWriter。但它不是NameValueCollection。
也许解决方案很简单......但是我看不到它。
答案 0 :(得分:1)
在解析之前,您需要将其修剪为查询字符串,如下所示:
if (fullUrl.Contains("?")) {
fullUrl = fullUrl.Substring(fullUrl.IndexOf("?") + 1);
}
NameValueCollection qscoll = HttpUtility.ParseQueryString(fullUrl);
答案 1 :(得分:1)
你可以尝试:
var si = Request["si"];
var user = Request["us"];
//etc.