将变量发送到asp.net中的另一个页面

时间:2014-05-25 16:38:15

标签: c# asp.net

我正在使用c#asp.net。我正在尝试从用户那里获取输入并在另一个aspx页面中使用它。这是我在第一页的代码。

<asp:Button ID="btnProduct1Addtocart" runat="server" Text="Add to cart" postbackurl="~/CartPage.aspx"/>

这是代码隐藏的第二页代码。

Label lblProduct1Name = (Label)PreviousPage.FindControl("lblProduct1Name");
Label1.Text = lblProduct1Name.Text;

但我得到一个错误,例如“NullReferenceException未被用户代码处理”,该错误位于“Label1.Text = lblProduct1Name.Text;”中谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

正在执行您要完成的操作的正确方法实际上是对CartPage.aspx页面进行POST。使用<form action="~/CartPage.aspx" method="POST">包裹您的按钮并使用隐藏字段来保存产品ID,例如:

<asp:HidenField ID="productID" runat="server" value="<%= Product.ID %>" />

其他方法是简单地在url中传递该变量,例如:

<a href="~/CartPage.aspx?productID=<%= Product.ID %>">Add to cart</a>
CartPage.aspx中的

只是阅读Request["productID"]了解您要传递的产品ID。

注意:轻松使用ASP.NET控件,它会变得非常大,会使页面变慢,尽可能多地保留HTML。

答案 1 :(得分:0)

您需要使用query string传递值,如下所示:

<asp:Button ID="btnProduct1Addtocart" runat="server" Text="Add to cart" onclick="btnAddToCart_Clicked"/>

事件背后的代码:

private void btnAddToCart_Clicked(object sender, System.EventArgs e)
{
Response.Redirect("~/CartPage.aspx?Name=" +lblProduct1Name.Text);
}

CartPage.aspx 的页面加载时,请执行以下操作:

private void Page_Load(object sender, System.EventArgs e)
{
Label1.Text = Request.QueryString["Name"];
} 

另请查看此article以了解它。

相关问题