我正在使用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;”中谢谢你的帮助。
答案 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以了解它。