1

我想计算一个 URL 字符串中出现了多少个查询字符串键。这里的 URL 是一个字符串,所以我不能使用 Request.QueryString.AllKeys 来计算 url 中有多少键。目前,我通过分析 url 字符串的结构并在字符串中使用 count 字符串来计算 url 字符串中的查询字符串键来解决此问题。大家可以看清楚我的代码示例:

public int CountQueryStringKey(string urlString)
{
    string urlWithoutKey = urlString.Substring(0, urlString.IndexOf("?"));
    string allKeyString = urlString.Substring(urlString.IndexOf("?") + 1);
    string[] allKeyAndValue = allKeyString.Split('&');
    return allKeyAndValue.Length;
}

这很简单,但还不够。如果 url 的字符串中没有查询字符串键会发生什么,并且总是有不同类型的 url,我不确定它的结构。

我需要一些帮助才能在这个问题上找到一个好的解决方案。

4

2 回答 2

2

虽然重复(从 Uri 获取单个查询参数)提供了足够好的答案,但我建议使用Uri.Query来提取 URL 的查询部分。然后按照其他问题中的建议继续使用HttpUtility.ParseQueryString 。NameValueCollection.Count获取查询参数的数量。

var queryParameters = HttpUtility.ParseQueryString(new Uri(urlString).Query);
var numberOfParameter = queryParameters.Count;
于 2013-03-05T07:13:24.363 回答
1

看看这个帖子。这里可以使用HttpUtility从普通字符串中获取查询字符串参数

HttpUtility

于 2013-03-05T07:13:58.207 回答