如何在c#中向当前url添加一个参数

时间:2014-02-18 13:30:53

标签: c# asp.net

我有2个链接

 <li class="active">
  <a href="<%#CurrentSearchUrl%>"><span>Current search Page
 </span></a> 

  <li><a href="<%#CurrentSearchUrlParam%>"><span>Add param </span>
      </a> 
在Page_Load

    CurrentSearchUrl = Request.Url.AbsoluteUri;
    CurrentSearchUrlParam = Request.Url+"&discount=1";

添加了param,但url不正确 我目前的网址是

http://localhost:1067/search/default.aspx?q=test

我想添加一个参数,所需的结果应该是

http://localhost:1067/search/default.aspx?q=test&discount=1

提前致谢

3 个答案:

答案 0 :(得分:10)

        var uriBuilder = new UriBuilder(Request.Url.AbsoluteUri);
        var paramValues = HttpUtility.ParseQueryString(uriBuilder.Query);
        paramValues.Add("param1", "value1");
        paramValues.Add("param2", "value2");
        uriBuilder.Query = paramValues.ToString();

        Link1.HRef=uriBuilder.Uri;

答案 1 :(得分:4)

小心已有的参数。 这是Victor&#39;的一个小修改。代码:

    var uriBuilder = new UriBuilder(Request.Url.AbsoluteUri);
    var paramValues = HttpUtility.ParseQueryString(uriBuilder.Query);

    if(paramValues.Get("param1")!=null) paramValues.Remove("param1");

    paramValues.Add("param1", "value1");
    paramValues.Add("param2", "value2");
    uriBuilder.Query = paramValues.ToString();

    Link1.HRef=uriBuilder.Uri;

答案 2 :(得分:1)

有很多方法可以做到这一点。例如:

您的HTML:

<li class="active">
  <a href="" runat="server" ID="Link1"><span>Current search Page
 </span></a> 

  <li><a href="" runat="server" ID="Link2"><span>Add param </span>
      </a> 

在Page_Load:

Link1.HRef = HttpContext.Current.Request.Url.ToString();
Link2.HRef = HttpContext.Current.Request.Url.ToString()+"&discount=1";