ASP.Net - How to Pass +(plus) in query string in C#.Net,VB.Net


+ sign has a semantic meaning in the query string. It is used to represent a space.Most server side scripts would decode the query parameters before using them, so that a + gets properly converted to a space. Now, if you want a literal + to be present in the query string, you need to specify %2B instead. Because + sign in the query string is URL-decoded to a space. %2B in the query string is URL-decoded to a + sign.
In my application from the form 1 I am redirecting to form2 and passing f1wRcMvJJ2YjLjc8dc+7ykY9szg&kanna= in the query string.  

So in my form1  I have a button.
    <asp:Button ID="btnRedirect" runat="server" OnClick="btnRedirect_Click" Text="Redirect" />

While clicking on the button I am redirecting to new page with f1wRcMvJJ2YjLjc8dc+7ykY9szg&kanna= as query string. Since my querystring as + symbol I am repacing it with %2B and encoding it before passing in the query string. Below is the code

protected void btnRedirect_Click(object sender, EventArgs e)
        string signature="f1wRcMvJJ2YjLjc8dc+7ykY9szg=&kanna";
        signature = signature.Replace("+", "%2B");
        Response.Redirect("Encode-Decode-QueryString.aspx?sign=" + Server.UrlEncode(signature));

Now in the page load of redirected page I am decoding the querystring and displaying in a label.
protected void Page_Load(object sender, EventArgs e)
    string sign = Request["sign"] + "";
    lblSignature.Text = Server.UrlDecode(sign);

It works fine . Hope it will help you.


Post a Comment

Online Casino