asp.net传多个值到其它页面的具体实现


在ASP.NET中,传递多个值到另一个页面可以通过多种方式实现,包括使用QueryString、Session、Cookies或者通过表单(Form)提交。下面是一些具体实现的例子:

### 1. 使用QueryString

QueryString是一种将值附加到URL上的简单方法,适用于传递非敏感数据。在源页面,你可以这样构建URL:


// 假设有两个值要传递,分别是name和age
string name = "John Doe";
int age = 30;
Response.Redirect("TargetPage.aspx?name=" + Server.UrlEncode(name) + "&age=" + age.ToString());

在目标页面(TargetPage.aspx),你可以通过Request对象来获取这些值:


string name = Request.QueryString["name"];
int age = Convert.ToInt32(Request.QueryString["age"]);

### 2. 使用Session

Session用于在用户会话期间存储数据。它对于在多个页面请求之间传递信息非常有用。在源页面设置Session:


// 假设有两个值要传递,分别是name和age
Session["name"] = "John Doe";
Session["age"] = 30;
Response.Redirect("TargetPage.aspx");

在目标页面获取Session值:


string name = Session["name"].ToString();
int age = Convert.ToInt32(Session["age"]);

### 3. 使用Cookies

Cookies是将少量数据存储在用户浏览器中的方式。它对于跨多个会话持久化信息很有用。设置Cookie:


// 注意:Cookies可能因浏览器设置而被禁用
HttpCookie nameCookie = new HttpCookie("name", "John Doe");
HttpCookie ageCookie = new HttpCookie("age", "30");
Response.Cookies.Add(nameCookie);
Response.Cookies.Add(ageCookie);
Response.Redirect("TargetPage.aspx");

在目标页面读取Cookie:


if (Request.Cookies["name"] != null)
{
    string name = Request.Cookies["name"].Value;
}
if (Request.Cookies["age"] != null)
{
    int age = Convert.ToInt32(Request.Cookies["age"].Value);
}

### 4. 通过表单提交

如果传递的值是表单输入的一部分,你可以在表单提交时将这些值发送到另一个页面。这种方法通常与POST请求一起使用。

源页面的表单可能如下所示:


<form action="TargetPage.aspx" method="post">
    <input type="text" name="name" value="John Doe" />
    <input type="text" name="age" value="30" />
    <input type="submit" value="Submit" />
</form>

在目标页面(TargetPage.aspx),你可以通过Request.Form来访问这些值:


string name = Request.Form["name"];
int age = Convert.ToInt32(Request.Form["age"]);

以上就是在ASP.NET中传递多个值到另一个页面的几种常用方法。每种方法都有其适用场景,你可以根据具体需求选择最适合的方法。