3

WebBrowser コントロールでクエリ パラメータにアクセスする方法はありますか、それとも手動で文字列を分割する必要がありますか? 例えば:

http://www.mysite.com?paramter=12345

パラメータの値にアクセスするだけです。xaml ページを操作するときに、QueryString プロパティがあることを知っています。Web ページでの作業に似たようなものはありますか?

4

4 に答える 4

5

私はこれをどこで手に入れたのか思い出せません、おそらくそうです。

 public static class UriExtensions
    {
        private static readonly Regex QueryStringRegex = new Regex(@"[\?&](?<name>[^&=]+)=(?<value>[^&=]+)");

        public static IEnumerable<KeyValuePair<string, string>> ParseQueryString(this Uri uri)
        {
            if (uri == null)
                throw new ArgumentException("uri");

            var matches = QueryStringRegex.Matches(uri.OriginalString);
            for (var i = 0; i < matches.Count; i++)
            {
                var match = matches[i];
                yield return new KeyValuePair<string, string>(match.Groups["name"].Value, match.Groups["value"].Value);
            }
        }
    }
于 2012-06-07T19:13:44.203 に答える
1

他の誰かがそれを行う別の方法を持っていない限り、私は同じことを手動で達成することができました:

// The url looked something like this http://www.mysite.com?param1=value&param2=value
var parameterValue = e.Uri.Query.Split('&')
            .Where(s => s.Split('=')[0] == "param2")
            .Select(s => s.Split('=')[1])
            .FirstOrDefault();

私はこの方法が悪いとは思いません.ASP.NET、.NETなどに存在することを知っているので、このタイプの解析のための組み込みメソッドがあるかどうか疑問に思っていました.

于 2012-06-07T18:28:04.700 に答える