我正在尝试使用会话状态将一些变量从表单传递到下一页

  • 本文关键字:表单 变量 一页 会话状态 c#
  • 更新时间 :
  • 英文 :


这是我的代码在第一页中的样子:

protected void btnCalculate_Click(object sender, EventArgs e)
{
if (IsValid)
{
decimal salesPrice = Convert.ToDecimal(txtSalesPrice.Text);
decimal discountPercent = Convert.ToDecimal(txtDiscountPercent.Text) / 100;
decimal discountAmount = salesPrice * discountPercent;
decimal totalPrice = salesPrice - discountAmount;
lblDiscountAmount.Text = discountAmount.ToString("c");
lblTotalPrice.Text = totalPrice.ToString("c");
Session.Add("salesPrice", salesPrice);
Session.Add("discountAmount", discountAmount);
Session.Add("totalPrice", totalPrice);
}
}
protected void btnConfirm_Click(object sender, EventArgs e)
{
if (Session["salesPrice"] == null)
{
lblMessage.Text = "Click the Calculate button before you confirm.";
}
else
{
Response.Redirect("Confirm.aspx");
}
}

现在我尝试捕获这些变量:

protected void Page_Load(object sender, EventArgs e)
{
TextBox salesPrice = (TextBox)Session["salesPrice"];
TextBox discountAmount = (TextBox)Session["discountAmount"];
TextBox totalPrice = (TextBox)Session["totalPrice"];

从这里更改您的代码:

TextBox salesPrice = (TextBox)Session["salesPrice"];
TextBox discountAmount = (TextBox)Session["discountAmount"];
TextBox totalPrice = (TextBox)Session["totalPrice"];

自:

salesPrice.Text = Session["salesPrice"].ToString();
discountAmount.Text = Session["discountAmount"].ToString();
totalPrice.Text = Session["totalPrice"].ToString();

在这里,销售价格,折扣金额,总价格是文本框。作为一种好的做法,您可以检查会话["字段名称"]是否不为空等。

最新更新