J'ai trois valeurs que je dois transmettre en tant que paramètres, par exemple, strID
, strName
et strDate
.
Je souhaite rediriger ces trois paramètres vers une autre page dans Response.Redirect()
Quelqu'un peut-il me fournir la chaîne de requête correcte?
(Vous trouverez ci-dessous le texte de la section liée de l'entrée Wikipedia.)
Une URL typique contenant une chaîne de requête est la suivante:
http://server/path/program?query_string
Lorsqu'un serveur reçoit une demande pour une telle page, il exécute un programme (s'il est configuré pour le faire), en transmettant la chaîne query_string sans modification au programme. Le point d'interrogation est utilisé comme séparateur et ne fait pas partie de la chaîne de requête.
Un lien dans une page Web peut avoir une URL contenant une chaîne de requête. Cependant, HTML définit trois manières pour un navigateur Web de générer la chaîne de requête:
Les chaînes de requête sont principalement utilisées pour contenir le contenu d'un formulaire HTML, également appelé formulaire Web. En particulier, lorsqu'un formulaire contenant les champs field1, field2, field3 est soumis, le contenu des champs est codé sous forme de chaîne de requête de la manière suivante:
field1=value1&field2=value2&field3=value3...
field1=value1&field1=value2&field1=value3...
Pour chaque champ du formulaire, la chaîne de requête contient une paire champ = valeur. Les formulaires Web peuvent inclure des champs non visibles pour l'utilisateur. ces champs sont inclus dans la chaîne de requête lorsque le formulaire est soumis
Cette convention est une recommandation du W3C. Le W3C recommande à tous les serveurs Web de prendre en charge les séparateurs point-virgule, en plus des séparateurs esperluette [6], afin d'autoriser les chaînes de requête application/x-www-form-urlencoded dans les URL des documents HTML sans avoir à échanger des esperluettes d'échappement.
Techniquement, le contenu du formulaire est uniquement codé en tant que chaîne de requête lorsque la méthode de soumission du formulaire est GET. Le même codage est utilisé par défaut lorsque la méthode de soumission est POST, mais le résultat n'est pas envoyé en tant que chaîne de requête, c'est-à-dire qu'il n'est pas ajouté à l'URL d'action du formulaire. Au lieu de cela, la chaîne est envoyée en tant que corps de la requête HTTP.
Query String: ?strID=XXXX&strName=yyyy&strDate=zzzzz
avant de rediriger:
string queryString = Request.QueryString.ToString();
Response.Redirect("page.aspx?"+queryString);
Essayez comme ça.Il devrait fonctionner
Response.Redirect(String.Format("yourpage.aspx?strId={0}&strName={1}&strDate{2}", Server.UrlEncode(strId), Server.UrlEncode(strName),Server.UrlEncode(strDate)));
~mypage.aspx?strID=x&strName=y&strDate=z
Cela peut être fait en utilisant:
Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");
J'utilise AbsoluteUri et vous pouvez l'obtenir comme ceci:
string myURI = Request.Url.AbsoluteUri;
if (!WebSecurity.IsAuthenticated) {
Response.Redirect("~/Login?returnUrl="
+ Request.Url.AbsoluteUri );
Ensuite, après vous être connecté:
var returnUrl = Request.QueryString["returnUrl"];
if(WebSecurity.Login(username,password,true)){
Context.RedirectLocal(returnUrl);
Cela fonctionne bien pour moi.