tags:

views:

1354

answers:

4

I have a querystring alike value set in a plain string. I started to split string to get value out but I started to wonder that I can proabably write this in one line instead. Could you please advice if there is more optimal way to do this?

I am trying to read "123" and "abc" like in Request.QueryString but from normal string.

 protected void Page_Load(object sender, EventArgs e)
{
    string qs = "id=123&xx=abc";
    string[] urlInfo = qs.Split('&');
    string id = urlInfo[urlInfo.Length - 2];
    Response.Write(id.ToString());

}
+15  A: 

Look at HttpUtility.ParseQueryString. Don't reinvent the wheel.

RichardOD
I knew there had to be better way to do this. I just was looking from wrong place. Thanks!
jpkeisala
@jpkeisala- That's the joy of a large framework. It is sometimes hard to find the right class.
RichardOD
A: 

Have a look at this thread on StackOverflow - Converting/accessing QueryString values in ASP.NET. In particular, my fantastic method of using generics to parse strongly typed values :P

Dan Diplo
+1  A: 

RichardOD is on it with HttpUtility.ParseQueryString but don't forget to look at TryParse.

You can TryParse int, DateTimes etc

http://stackoverflow.com/questions/349742/how-do-you-test-your-request-querystring-variables

DrG
+17  A: 

You can do it this way:

using System.Collections.Specialized;

NameValueCollection query = HttpUtility.ParseQueryString(queryString);
Response.Write(query["id"]);

Hope it helps.

Nelson Reis