如何在查询string中传递多个参数

我有三个值,我必须作为例如strIDstrNamestrDateparameter passing。

我想将这三个参数redirect到Response.Redirect()另一个页面。任何人都可以提供正确的查询string?

请求参数

(以下是维基百科条目的链接部分的文字。)

结构体

包含查询string的典型URL如下所示:

http://server/path/program?query_string

当一个服务器接收到这样一个页面的请求,它运行一个程序(如果这样做的话),将query_string传递给程序。 问号用作分隔符,不是查询string的一部分。

网页中的链接可能包含一个包含查询string的URL,但HTML定义了浏览器可以生成查询string的三种方式:

  • 一个web表单通过…元素
  • 一个服务器端的图像映射,通过构造元素上的ismap属性
  • 通过现在已弃用的元素进行索引search

Web表单

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

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

  • 查询string由一系列字段 – 值对组成。
  • 在每对中,字段名称和值由等号分隔。 如果值为空string,等号可以省略。
  • 一系列对由&符号分隔,'&'(或分号,';'表示embedded在HTML中的URL,不是由…生成;见下文)。 虽然没有明确的标准,但大多数Web框架允许将多个值与单个字段相关联:

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

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

这个约定是W3C的build议。 W3Cbuild议所有Web服务器支持分号分隔符,除了&符号分隔符[6]以允许HTML文档中的URL中的应用程序/ x-www-form-urlencoded查询string,而不必实体转义符号。

从技术上讲,当表单提交方法是GET时,表单内容仅被编码为查询string。 提交方法为POST时默认使用相同的编码,但结果不作为查询string发送,即不会添加到表单的操作URL。 相反,该string是作为HTTP请求的主体发送的。

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

在redirect之前:

 string queryString = Request.QueryString.ToString(); Response.Redirect("page.aspx?"+queryString); 

试试这个,它应该可以工作

 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 

这可以用这种方式完成:

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

我使用AbsoluteUri,你可以这样得到它:

 string myURI = Request.Url.AbsoluteUri; if (!WebSecurity.IsAuthenticated) { Response.Redirect("~/Login?returnUrl=" + Request.Url.AbsoluteUri ); 

然后login后:

 var returnUrl = Request.QueryString["returnUrl"]; if(WebSecurity.Login(username,password,true)){ Context.RedirectLocal(returnUrl); 

这对我来说很有用。