2010-03-05 7 views
0

je la méthode suivante:ASP.Net et NameValueCollection

public object[] GetEventsByUser(DateTime start, DateTime end, string fullUrl) 

La valeur du fullurl est:

http://localhost:50435/page/view.aspx?si=00&us=admin&ut=smt&

Quand je fais:

NameValueCollection qscoll = HttpUtility.ParseQueryString(fullUrl); 

Je reçois :

{http% 3a% 2f% 2flocalhost% 3a50435% 2fpage% 2fview.aspx% 3fsi = 00 & nous = admin & ut = smt &}

Mais je dois obtenir les paramètres dans le QueryString de cette page, et avec cette valeur, je ne peux pas obtenir la valeur "si", car le point d'interrogation qui démarre la chaîne de requête est codé. Alors j'ai pensé: "humm ... je devrais essayer de faire le HttpUtility.HtmlEncode()"

Cependant la méthode HtmlEncode renvoie void: Cependant le deuxième paramètre de cette méthode envoie la valeur à un TextWriter. Mais ce n'est pas le NameValueCollection. Peut-être que la solution est simple ... mais je ne peux pas le voir.

Répondre

1

Vous avez besoin de couper vers le bas juste avant la querystring analyse syntaxique, comme ceci:

if (fullUrl.Contains("?")) { 
    fullUrl = fullUrl.Substring(fullUrl.IndexOf("?") + 1); 
} 
NameValueCollection qscoll = HttpUtility.ParseQueryString(fullUrl); 
1

Vous pouvez essayer:

var si = Request["si"]; 
var user = Request["us"]; 
//etc. 
+1

Vous voulez dire 'Request.QueryString [ "si"]'. –

+0

Je voulais dire: Demander ["xy"], j'ai changé cela. – Robert

Questions connexes