本帖最后由 zl2928511 于 2012-05-30 21:21:33 编辑

解决方案 »

  1.   

    好不容易弄完了,楼主看看吧。<div>
            价格&nbsp; <a href="Default.aspx?<%=getUrl(condition,"price=1-100") %>">低于100</a>&nbsp;&nbsp;
            <a href="Default.aspx?<%=getUrl(condition,"price=100-200") %>">100-200</a>
            <br />
            规模&nbsp; <a href="Default.aspx?<%=getUrl(condition,"scope=large") %>">规模较大</a>&nbsp;&nbsp;
            <a href="Default.aspx?<%=getUrl(condition,"scope=zz") %>">规模中等</a>
            <br />
            新旧&nbsp; <a href="Default.aspx?<%=getUrl(condition,"xinjiu=quanxin") %>">全新</a>&nbsp;&nbsp;
            <a href="Default.aspx?<%=getUrl(condition,"xinjiu=banxin") %>">半新</a>
        </div>using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;namespace WebApplication1
    {
        public partial class _Default : System.Web.UI.Page
        {
            public string condition = "";
            protected void Page_Load(object sender, EventArgs e)
            {
                int i = 0;
                foreach (string key in Request.QueryString.Keys)
                {
                    if (i != 0)
                    {
                        condition += "&";
                    }
                    condition = condition + (key + "=" + Request.QueryString[key]);
                    i++;
                }
            }        // 去掉多余的参数
            public String getUrl(string url, string addUrl)
            {
                // 第一次加载
                if (url.Equals(""))
                {
                    return addUrl;
                }
                String rValue = "";
                List<QueryStringModel> listQueryStringModel = new List<QueryStringModel>();
                // 分解目前参数
                string[] values1 = url.Split('&');
                foreach (string value1 in values1)
                {
                    string[] nowQueryString = value1.Split('=');
                    // 把目前的参数都添加到List中
                    QueryStringModel model = new QueryStringModel();
                    model.KeyName = nowQueryString[0];
                    model.KeyValue = nowQueryString[1];
                    listQueryStringModel.Add(model);
                }            bool isHave = false;
                // 分解要新加的参数
                string[] addQueryString = addUrl.Split('=');
                // 循环List进行判断
                for (int i = 0; i < listQueryStringModel.Count; i++)
                {   
                    // 如果Key相同,则替换
                    if (listQueryStringModel[i].KeyName.Equals(addQueryString[0]))
                    {
                        listQueryStringModel[i].KeyValue = addQueryString[1];
                        isHave = true;
                    }                
                }
                // 如果List中不存在该参数,则添加
                if (isHave == false)
                {
                    QueryStringModel model = new QueryStringModel();
                    model.KeyName = addQueryString[0];
                    model.KeyValue = addQueryString[1];
                    listQueryStringModel.Add(model);
                }            // 循环List生成url地址
                for (int i = 0; i < listQueryStringModel.Count; i++)
                {
                    if (i != 0)
                    {
                        rValue += "&";
                    }
                    rValue += listQueryStringModel[i].KeyName + "=" + listQueryStringModel[i].KeyValue;
                }
                return rValue;
            }
        }    public class QueryStringModel
        {
            String _keyValue;        public String KeyValue
            {
                get { return _keyValue; }
                set { _keyValue = value; }
            }
            String _keyName;        public String KeyName
            {
                get { return _keyName; }
                set { _keyName = value; }
            }
        }
    }