这是我的网址,其中包含4个查询字符串(desc,url,img,title)。
我读了下面的查询字符串,
string title = Request.QueryString["desc"];
string pageurl = Request.QueryString["url"];
string alttext = Request.QueryString["title"];
string imageurl = Request.QueryString["img"];
我得到的输出是:
title=Home Page&url=http://localhost:4385/&img=http://localhost:4385/images/ribbon-img.png&title="
它需要整个url到第一个querstring,这不是我预期的输出。
我期望所有查询字符串变量的值
任何人都可以帮助我
答案 0 :(得分:3)
我认为网址格式不正确,因为斜杠/
字符将在查询字符串中以%2F
的形式发送,但未以您的网址格式进行。
更新:
Respose.Redirect("http://localhost:4385/Default?desc=Home%20Page&url="+Uri.EscapeDataString("http://localhost:4385/")+"&img="+Uri.EscapeDataString("http://localhost:4385/images/ribbon-img.png")+"&title=");
答案 1 :(得分:0)
问题是您没有使用正确的编码创建QueryString。 .NET框架有HttpUtility.ParseQueryString Method来简化编码问题。试试这段代码
//are you sure your URL doesn't have an ".aspx" extension?
var url = " http://localhost:4385/Default.aspx?";
var queryString = System.Web.HttpUtility.ParseQueryString(string.Empty);
queryString["desc"] = "Home Page";
queryString["url"] = "http://localhost:4385/";
queryString["image"] = "http://localhost:4385/images/ribbon-img.png";
queryString["title"] = "";
Response.Redirect(url + queryString.ToString());
现在QueryString看起来像这样。
var urlWithQueryString =" http://localhost:4385/Default.aspx?desc=Home+Page&url=http%3a%2f%2flocalhost%3a4385%2f&image=http%3a%2f%2flocalhost%3a4385%2fimages%2fribbon-img.png&title="
现在可以使用您尝试过的方法进行解析
string title = Request.QueryString["desc"];
string pageurl = Request.QueryString["url"];
string alttext = Request.QueryString["title"];
string imageurl = Request.QueryString["image"]; //you have wrongly typed "img" here