我有三个值,我必须将其作为参数传递给strID
,strName
和strDate
。
我想将这三个参数重定向到Response.Redirect()
中的另一个页面。任何人都能为我提供正确的查询字符串吗?
答案 0 :(得分:89)
(以下是维基百科条目的链接部分的文字。)
包含查询字符串的典型URL如下:
http://server/path/program?query_string
当服务器收到对此类页面的请求时,它会运行一个程序(如果配置为这样做),将query_string不变地传递给程序。问号用作分隔符,不是查询字符串的一部分。
网页中的链接可能包含一个包含查询字符串的URL,但HTML定义了Web浏览器生成查询字符串的三种方式:
查询字符串的主要用途是包含HTML表单的内容,也称为Web表单。特别是,当提交包含字段field1,field2,field3的表单时,字段的内容将编码为查询字符串,如下所示:
field1=value1&field2=value2&field3=value3...
field1=value1&field1=value2&field1=value3...
对于表单的每个字段,查询字符串包含一对field = value。 Web表单可能包含用户不可见的字段;提交表单时,这些字段包含在查询字符串中
此约定是W3C推荐。 W3C建议除了和号分隔符[6]之外,所有Web服务器都支持分号分隔符,以允许HTML文档中的URL中的application / x-www-form-urlencoded查询字符串,而无需实体转义&符号。
从技术上讲,表单内容仅在表单提交方法为GET时编码为查询字符串。提交方法为POST时,默认使用相同的编码,但结果不会作为查询字符串发送,也就是说,不会添加到表单的操作URL中。而是将字符串作为HTTP请求的主体发送。
答案 1 :(得分:31)
Query String: ?strID=XXXX&strName=yyyy&strDate=zzzzz
重定向之前:
string queryString = Request.QueryString.ToString();
Response.Redirect("page.aspx?"+queryString);
答案 2 :(得分:14)
尝试这样。它应该工作
Response.Redirect(String.Format("yourpage.aspx?strId={0}&strName={1}&strDate{2}", Server.UrlEncode(strId), Server.UrlEncode(strName),Server.UrlEncode(strDate)));
答案 3 :(得分:7)
~mypage.aspx?strID=x&strName=y&strDate=z
答案 4 :(得分:5)
这可以通过使用:
来完成Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");
答案 5 :(得分:1)
我使用AbsoluteUri,你可以这样得到它:
string myURI = Request.Url.AbsoluteUri;
if (!WebSecurity.IsAuthenticated) {
Response.Redirect("~/Login?returnUrl="
+ Request.Url.AbsoluteUri );
然后登录后:
var returnUrl = Request.QueryString["returnUrl"];
if(WebSecurity.Login(username,password,true)){
Context.RedirectLocal(returnUrl);
它适用于我。