C# ASP.Net和NameValueCollection
我有以下方法:C# ASP.Net和NameValueCollection,c#,asp.net,namevaluecollection,C#,Asp.net,Namevaluecollection,我有以下方法: public object[] GetEventsByUser(DateTime start, DateTime end, string fullUrl) 完整URL的值为: 当我这样做时: NameValueCollection qscoll = HttpUtility.ParseQueryString(fullUrl); 我得到: {http%3a%2f%2localhost%3a50435%2fpage%2fview.aspx%3fsi=00&us=admin&ut=
public object[] GetEventsByUser(DateTime start, DateTime end, string fullUrl)
完整URL的值为:
当我这样做时:
NameValueCollection qscoll = HttpUtility.ParseQueryString(fullUrl);
我得到:
{http%3a%2f%2localhost%3a50435%2fpage%2fview.aspx%3fsi=00&us=admin&ut=smt&}
但是我需要获取这个页面查询字符串中的参数,使用这个值,我无法获取“si”值,因为启动查询字符串的问号是经过编码的。
所以我想:“嗯……我应该尝试使用HttpUtility.HtmlEncode()
然而,方法HtmlEncode返回void:然而,该方法的第二个参数将值发送给TextWriter。但它不是NameValueCollection
也许解决办法很简单。。。但是我看不到它。在解析之前,您需要将其精简为仅查询字符串,如下所示:
if (fullUrl.Contains("?")) {
fullUrl = fullUrl.Substring(fullUrl.IndexOf("?") + 1);
}
NameValueCollection qscoll = HttpUtility.ParseQueryString(fullUrl);
你可以试试:
var si = Request["si"];
var user = Request["us"];
//etc.
你的意思是
Request.QueryString[“si”]
。我的意思是:Request[“xy”],我改变了这个。