프로그램 자료/ASP.NET

asp.net 에서 URL Query 가져오고, 값 변경 하기(정규식 사용) parameter

motolies 2015. 2. 2. 18:38

 

2014/10/28 - [프로그램 자료/Java Script] - JavaScript 에서 URL Query 가져오고, 값 변경 하기






 

public class UrlQuery

{

    public static Dictionary<string, string> GetDicParam()

    {

        Dictionary<string, string> dicParam = new Dictionary<string, string>();

        string param = HttpContext.Current.Request.Url.Query;

        if (string.IsNullOrWhiteSpace(param))

            return dicParam;

 

        param = HttpUtility.UrlDecode(param.Substring(1, param.Length - 1));

 

        System.Text.RegularExpressions.Regex rx = new System.Text.RegularExpressions.Regex("([^&=]+)=?([^&]*)", System.Text.RegularExpressions.RegexOptions.Multiline);

 

        string s = "";

        foreach (System.Text.RegularExpressions.Match m in rx.Matches(param))

        {

            string[] k = m.ToString().Split('=');

            if (!string.IsNullOrWhiteSpace(k[1]))

                dicParam.Add(k[0], k[1]);

        }

        return dicParam;

    }

 

    public static string GetStrParam(Dictionary<string, string> urlQuery)

    {

        string param = string.Empty;

        foreach (KeyValuePair<string, string> p in urlQuery)

        {

            param += string.Format("&{0}={1}", p.Key, HttpUtility.UrlEncode(p.Value));

        }

        param = param.Substring(1, param.Length - 1);

        return param;

    }

 

    public static string GetUrlAndParam(Dictionary<string, string> urlQuery)

    {

        string param = string.Empty;

        foreach (KeyValuePair<string, string> p in urlQuery)

        {

            param += string.Format("&{0}={1}", p.Key, HttpUtility.UrlEncode(p.Value));

        }

        param = param.Substring(1, param.Length - 1);

 

        param = string.Format("{0}?{1}", HttpContext.Current.Request.Url.AbsolutePath, param);

        return param;

    }

 

}