• .NET Core中多条件查询拼接QueryString并选中当前条件


    前端调用

          <a class="btn btn-primary @HttpRequestExtensions.GetActive(ViewContext.HttpContext.Request.QueryString.Value,"sort","")" target="_self" href="/AllResourses/List?@(Html.Raw(HttpRequestExtensions.UpdateQueryString(ViewContext.HttpContext.Request.QueryString.Value, "sort","")))">
                                最新上传
                            </a>
                            <a class="btn btn-primary @HttpRequestExtensions.GetActive(ViewContext.HttpContext.Request.QueryString.Value,"sort","1")" target="_self" href="/AllResourses/List?@(Html.Raw(HttpRequestExtensions.UpdateQueryString(ViewContext.HttpContext.Request.QueryString.Value, "sort","1")))">
                                最多下载
                            </a>
                            <a class="btn btn-primary @HttpRequestExtensions.GetActive(ViewContext.HttpContext.Request.QueryString.Value,"sort","2")" target="_self" href="/AllResourses/List?@(Html.Raw(HttpRequestExtensions.UpdateQueryString(ViewContext.HttpContext.Request.QueryString.Value, "sort","2")))">
                                评分最高
                            </a>

    后台

        public static class HttpRequestExtensions
        {
            public static string RemoveQueryString(string queryString, string name)
            {
                var dic = GetFormData(queryString);
                dic.Remove(name);
                return ToQueryString(dic);
            }
            public static string UpdateQueryString(string queryString,
                string name, string value)
            {
                var dic = GetFormData(queryString);
                if (dic.ContainsKey(name))
                {
                    dic[name] = value;
                }
                else
                {
                    dic.Add(name, value);
                }
                return ToQueryString(dic);
            }
            public static string UpdateQueryStringceshi(string queryString,
                string []name, string []value)
            {
                var dic = GetFormData(queryString);
                for (int i = 0; i < name.Length; i++)
                {
                    if (dic.ContainsKey(name[i]))
                    {
                        dic[name[i]] = value[i];
                    }
                    else
                    {
                        dic.Add(name[i], value[i]);
                    }
                }
                
                return ToQueryString(dic);
            }
            /// <summary>
            /// 将获取的formData存入字典数组
            /// </summary>
            public static Dictionary<String, String> GetFormData(string formData)
            {
                try
                {
                    if (formData.IndexOf("?", StringComparison.Ordinal)!=-1)
                    {
                        formData = StringHelper.GetRight(formData, "?");
                    }
                    //将参数存入字符数组
                    String[] dataArry = formData.Split('&');
    
                    //定义字典,将参数按照键值对存入字典中
                    Dictionary<String, String> dataDic = new Dictionary<string, string>();
                    //遍历字符数组
    
                    for (int i = 0; i <= dataArry.Length - 1; i++)
                    {
                        //当前参数值
                        String dataParm = dataArry[i];
                        //"="的索引值
    
                        int dIndex = dataParm.IndexOf("=");
                        if (dIndex > 0)
                        {
                            //参数名作为key
                            String key = dataParm.Substring(0, dIndex);
                            //参数值作为Value
                            String value = dataParm.Substring(dIndex + 1, dataParm.Length - dIndex - 1);
                            //将编码后的Value解码
                            String deValue = System.Web.HttpUtility.UrlDecode(value, System.Text.Encoding.GetEncoding("utf-8"));
    
                            //将参数以键值对存入字典
                            dataDic.Add(key, deValue);
                        }
                    }
                    return dataDic;
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
            public static string ToQueryString(Dictionary<String, String> dic)
            {
                StringBuilder sb = new StringBuilder();
                foreach (var key in dic)
                {
                    //EscapeDataString就是对特殊字符进行uri编码
                    sb.Append(key.Key).Append("=")
                        .Append(Uri.EscapeDataString(key.Value)).Append("&");
                }
                return sb.ToString().Trim('&');//去掉最后一个多余的&
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="queryString">Url</param>
            /// <param name="name">参数</param>
            /// <param name="value">参数值</param>
            /// <param name="Default">默认值</param>
            /// <param name="returnValue">返回字符串</param>
            /// <returns></returns>
            public static string GetActive(string queryString, string name,string value,string Default = "",string returnValue= "active")
            {
                var dic = GetFormData(queryString);
                //包含name
                if (dic.ContainsKey(name))
                {
                    if (value == dic[name])
                    {
                        return returnValue;
                    }
                    return "";
                }
                //没有name,如果等于默认值
                if (value== Default)
                {
                    return returnValue;
                }
                return "";
    
            }
            public static string GetActive(string viebag, string value)
            {
        
                if (viebag== value)
                {
                    
                    return "active";
                }
                return "";
    
            }
        }
  • 相关阅读:
    [唐胡璐]QTP框架 关键字驱动测试框架之二 框架目录管理
    [唐胡璐]测试用例设计 错误推测方法
    [唐胡璐]测试用例设计 边界值分析方法
    [唐胡璐]QTP框架 关键字驱动测试框架之三 对象库管理
    [唐胡璐]QTP框架 关键字驱动测试框架之一 框架思想
    [唐胡璐]VS技巧 C# Winform界面中的分隔线
    [唐胡璐]QTP框架 关键字驱动测试框架之四 测试用例管理
    [唐胡璐]VS技巧 两个ListBox中的项左右移动
    [唐胡璐]测试用例设计 等价类划分
    [唐胡璐]QTP技巧 利用脚本从excel导入Data Table
  • 原文地址:https://www.cnblogs.com/wangyinlon/p/11679154.html
Copyright © 2020-2023  润新知