我有我要通过作为例如,参数三个值strID
,strName
和strDate
。
我想将这三个参数重定向到另一页中Response.Redirect()
。有人可以向我提供正确的查询字符串吗?
Answers:
(以下是Wikipedia条目的链接部分的文本。)
包含查询字符串的典型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建议所有Web服务器除与号分隔符[6]外还支持分号分隔符,以允许HTML文档中URL中的应用程序/ x-www-form-urlencoded查询字符串,而无需实体转义与号。
从技术上讲,仅当表单提交方法为GET时,才将表单内容编码为查询字符串。当提交方法为POST时,默认情况下使用相同的编码,但是结果不作为查询字符串发送,即不添加到表单的操作URL。而是将字符串作为HTTP请求的主体发送。
我使用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);
这对我来说很有用。