6

I have 2 links

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

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

in the Page_Load

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

param is added but url is not correct my current url is

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

I want to add one parameter, the desired result should be

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

Thanks in advance

Alex
  • 8,908
  • 28
  • 103
  • 157
  • You are looking for [Query String](http://stackoverflow.com/questions/19987952/how-to-properly-use-a-querystring-in-net-asp-c) – Wahtever Feb 18 '14 at 13:32
  • 1
    CurrentSearchUrlParam and CurrentSearchUrlDiscount are different. are you using correct parameter on page? – Amit Tiwari Feb 18 '14 at 13:52

3 Answers3

22
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;
Dan Atkinson
  • 11,391
  • 14
  • 81
  • 114
Victor Mukherjee
  • 10,487
  • 16
  • 54
  • 97
11

Be careful of already existing parameters. Here is a small modification of Victor' code:

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;
Dan Atkinson
  • 11,391
  • 14
  • 81
  • 114
bruno leclerc
  • 333
  • 2
  • 9
2

There are many way to do that. For example :

Your 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> 

In the Page_Load :

Link1.HRef = HttpContext.Current.Request.Url.ToString();
Link2.HRef = HttpContext.Current.Request.Url.ToString()+"&discount=1";
Habib Rahmoun
  • 218
  • 2
  • 8