101

我必须将三个值作为参数传递给例如strID和。strNamestrDate

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

4

6 回答 6

124

请求参数

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

结构

包含查询字符串的典型 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...

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

该约定是 W3C 推荐的。W3C 建议所有 Web 服务器都支持分号分隔符和 & 号分隔符[6],以允许 HTML 文档中的 URL 中的 application/x-www-form-urlencoded 查询字符串,而无需实体转义 & 号。

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

于 2009-04-07T07:49:59.460 回答
35
Query String: ?strID=XXXX&strName=yyyy&strDate=zzzzz

在重定向之前:

string queryString = Request.QueryString.ToString();

Response.Redirect("page.aspx?"+queryString);
于 2009-04-07T07:50:13.437 回答
16

试试这样。它应该工作

Response.Redirect(String.Format("yourpage.aspx?strId={0}&strName={1}&strDate{2}", Server.UrlEncode(strId), Server.UrlEncode(strName),Server.UrlEncode(strDate)));
于 2013-04-10T11:14:46.117 回答
9
~mypage.aspx?strID=x&strName=y&strDate=z
于 2009-04-07T07:48:57.387 回答
6

这可以通过使用来完成:

Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");
于 2016-05-31T02:56:58.217 回答
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);

这对我来说很有用。

于 2014-06-12T22:30:18.380 回答