如何在查询字符串中传递多个参数


88

我有我要通过作为例如,参数三个值strIDstrNamestrDate

我想将这三个参数重定向到另一页中Response.Redirect()。有人可以向我提供正确的查询字符串吗?

Answers:


111

请求参数

(以下是Wikipedia条目的链接部分的文本。)

结构体

包含查询字符串的典型URL如下:

http://server/path/program?query_string

当服务器收到对此类页面的请求时,它将运行程序(如果已配置为这样做),则将query_string不变地传递给该程序。问号用作分隔符,不是查询字符串的一部分。

网页中的链接可能具有包含查询字符串的URL,但是,HTML定义了Web浏览器生成查询字符串的三种方式:

  • 通过...元素的Web表单
  • 通过元素的ismap属性创建服务器端图像映射
  • 通过现已弃用的元素进行索引搜索

网络表格

查询字符串的主要用途是包含HTML表单(也称为Web表单)的内容。特别是,提交包含字段field1,field2,field3的表单时,这些字段的内容被编码为查询字符串,如下所示:

field1=value1&field2=value2&field3=value3...

  • 查询字符串由一系列字段值对组成。
  • 在每对中,字段名和值用等号分隔。如果该值为空字符串,则可以省略等号。
  • 成对的序列之间以&分隔(对于嵌入HTML且不是由...生成的URL,用&号(或分号,;表示);请参见下文)。尽管没有明确的标准,但是大多数Web框架都允许将多个值与单个字段相关联:

field1=value1&field1=value2&field1=value3...

对于表单的每个字段,查询字符串都包含一对field = value。Web表单可能包含用户不可见的字段;提交表单时,这些字段包含在查询字符串中

此约定是W3C建议。W3C建议所有Web服务器除与号分隔符[6]外还支持分号分隔符,以允许HTML文档中URL中的应用程序/ x-www-form-urlencoded查询字符串,而无需实体转义与号。

从技术上讲,仅当表单提交方法为GET时,才将表单内容编码为查询字符串。当提交方法为POST时,默认情况下使用相同的编码,但是结果不作为查询字符串发送,即不添加到表单的操作URL。而是将字符串作为HTTP请求的主体发送。


34
Query String: ?strID=XXXX&strName=yyyy&strDate=zzzzz

重定向之前:

string queryString = Request.QueryString.ToString();

Response.Redirect("page.aspx?"+queryString);

15

这样尝试。它应该可以工作

Response.Redirect(String.Format("yourpage.aspx?strId={0}&strName={1}&strDate{2}", Server.UrlEncode(strId), Server.UrlEncode(strName),Server.UrlEncode(strDate)));


5

可以使用以下方法完成:

Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");

1
@DalijaPrasnikar此“链接”是指向本地主机的URL,并且是答案的一部分。请不要“机器人审查”。
ElGavilan '16

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);

这对我来说很有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.