Response.Redirect("page.aspx?param=" + value);,在前台页面使用Request.QueryString["param"]获取值。在ASP.NET中,向页面传递值是一个常见的需求,本文将介绍如何在ASP.NET中实现向前台传值的方法。

使用QueryString传递值

QueryString是一种通过URL传递参数的方式,在ASP.NET中,可以通过Request.QueryString来获取传递的值。
示例代码:
// 后台代码
string value = "Hello, World!";
Response.Redirect("~/Default.aspx?value=" + Server.UrlEncode(value));
<!-前台代码 -->
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>
// 前台代码 (Default.aspx.cs)
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string value = Request.QueryString["value"];
Label1.Text = value;
}
}使用Session传递值
Session是一种在服务器端存储用户特定数据的方式,可以在一个页面设置Session,然后在另一个页面获取。
示例代码:
// 后台代码
string value = "Hello, World!";
Session["value"] = value;
Response.Redirect("~/Default.aspx");
<!-前台代码 -->
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>
// 前台代码 (Default.aspx.cs)
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string value = Session["value"] as string;
Label1.Text = value;
}
}使用Cookie传递值
Cookie是一种在客户端存储数据的方式,可以在一个页面设置Cookie,然后在另一个页面获取。
示例代码:
// 后台代码
string value = "Hello, World!";
HttpCookie cookie = new HttpCookie("value", value);
Response.Cookies.Add(cookie);
Response.Redirect("~/Default.aspx");
<!-前台代码 -->
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>
// 前台代码 (Default.aspx.cs)
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
HttpCookie cookie = Request.Cookies["value"];
string value = cookie != null ? cookie.Value : string.Empty;
Label1.Text = value;
}
}4. 使用Cross-Page Posting传递值
Cross-Page Posting是一种在一个页面提交表单时,将数据直接发送到另一个页面的方式,需要在目标页面中处理这些数据。
示例代码:

<!-Source.aspx -->
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Source.aspx.cs" Inherits="_Source" %>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form id="form1" runat="server" action="Target.aspx" method="post">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Submit" />
</div>
</form>
</body>
</html>
// Target.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null && PreviousPage.IsCrossPagePostBack)
{
string value = ((TextBox)PreviousPage.FindControl("TextBox1")).Text;
Label1.Text = value;
}
}
<!-Target.aspx -->
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Target.aspx.cs" Inherits="_Target" %>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>5. 使用Server.Transfer传递值
Server.Transfer是一种在同一Web应用程序内跳转页面的方式,同时可以传递数据,与Response.Redirect不同,Server.Transfer不会改变URL。
示例代码:
// 后台代码
string value = "Hello, World!";
Context.Items["value"] = value;
Server.Transfer("~/Default.aspx");
<!-前台代码 -->
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>
// 前台代码 (Default.aspx.cs)
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string value = Context.Items["value"] as string;
Label1.Text = value;
}
}到此,以上就是小编对于“aspx向前台传值”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/1737.html<
