如何在查询字符串中传递多个参数
Posted
技术标签:
【中文标题】如何在查询字符串中传递多个参数【英文标题】:How to pass multiple parameters in a querystring 【发布时间】:2010-10-17 23:51:30 【问题描述】:我必须将三个值作为参数传递,例如 strID
、strName
和 strDate
。
我想将这三个参数重定向到Response.Redirect()
中的另一个页面。有人可以提供正确的查询字符串吗?
【问题讨论】:
【参考方案1】:Query_string
(以下是***条目的链接部分的文本。)
结构
包含查询字符串的典型 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...
field1=value1&field1=value2&field1=value3...
对于表单的每个字段,查询字符串都包含一个字段=值对。 Web 表单可能包含对用户不可见的字段;这些字段在提交表单时包含在查询字符串中
此约定是 W3C 推荐的。 W3C 建议所有 Web 服务器都支持分号分隔符以及与号分隔符[6],以允许 HTML 文档中的 URL 中的 application/x-www-form-urlencoded 查询字符串,而不必对与号进行实体转义。
从技术上讲,只有当表单提交方法为 GET 时,表单内容才会被编码为查询字符串。提交方式为 POST 时默认使用相同的编码,但结果不作为查询字符串发送,即不添加到表单的操作 URL 中。而是将字符串作为 HTTP 请求的正文发送。
【讨论】:
【参考方案2】:Query String: ?strID=XXXX&strName=yyyy&strDate=zzzzz
重定向之前:
string queryString = Request.QueryString.ToString();
Response.Redirect("page.aspx?"+queryString);
【讨论】:
【参考方案3】:这样试试,应该可以的
Response.Redirect(String.Format("yourpage.aspx?strId=0&strName=1&strDate2", Server.UrlEncode(strId), Server.UrlEncode(strName),Server.UrlEncode(strDate)));
【讨论】:
【参考方案4】:~mypage.aspx?strID=x&strName=y&strDate=z
【讨论】:
【参考方案5】:这可以通过使用来完成:
Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");
【讨论】:
@DalijaPrasnikar 这个“链接”是一个指向本地主机的 url,是答案的一部分。请不要“机器人审查”。【参考方案6】:我使用 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);
它对我很有效。
【讨论】:
以上是关于如何在查询字符串中传递多个参数的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Rest Assured 在 GET url 中传递查询字符串参数?
Sonarqube“字符串不包含格式说明符”..如何在一个字符串中传递多个参数?
如何在 WCF Rest Service 中传递多个参数:C# 中的字符串和流