后面的代码计算
司机服务费用为30美元。 用户可以选择是否需要该服务。 当他们已经选择汽车和租赁日时,我将它存储在会话中。
Session["car1"] = Label1.Text; Session["price"] = Label5.Text; Session["day"] = DropDownList3.SelectedItem.Text; Session["driver"] = Label6.Text; Response.Redirect("~/Welcome/BookingForm.aspx");
然后在bookingform.aspx中,我检索回会话,并在标签中显示它。
string car1 = Session["car1"].ToString(); string price = Session["price"].ToString(); string day = Session["day"].ToString(); string driver = Session["driver"].ToString();
要计算用户应支付的总金额,我使用了以下代码:
int totalValue = 0; totalValue = int.Parse(Session["price"].ToString()) * int.Parse(Session["day"].ToString()); Label8.Text = totalValue.ToString();
现在的问题是,我不知道如何为司机服务添加30美元用户选择该服务。 就像用户选择yes,totalValue + 30,如果没有,则什么都不做。
谢谢你的时间。 干杯。
为什么不创建自定义类,添加Car,Price,Day,ChaffterUsed等属性。创建类的对象,填充属性并将对象存储到会话中。 在下一页上,从会话加载对象并使用它。
将下拉值存储到另一个会话变量中,例如IsChaffeurUsed。 使它成为一个布尔值。
bool IsChauffeurUsed= dropDown.SelectedValue=="Yes" ? true :false; Session["IsChauffeurUsed"]= IsChauffeurUsed; //Your logic to compute total int totalValue = 0; totalValue = int.Parse(Session["price"].ToString()) * int.Parse(Session["day"].ToString()); //check if chaffeur service is used bool isChaffeurUsed = (bool) Session["IsChaffeurUsed"]; if(isChaffeurUsed) { total += 30; } Label8.Text = (totalValue).ToString();
我建议使用Server.Transfer()而不是Response.Redirect()并使用PreviousPage来获取所需的值。
这将使您免于使用Session,因为在此方案中不应使用Session。
要知道如何使用PreviousPage,请参阅下面的链接。
http://msdn.microsoft.com/en-us/library/system.web.ui.page.previouspage.aspx
当您提供在下拉列表中选择服务时,为什么不在会话中存储该状态? 喜欢
bool chauffeurService= YourServiceDropDown.SelectedValue=="1" ? true :false; Session["chauffeurStatus"]=chauffeurService;
然后在表单内部处理值
// Check if Chauffer service status is 1 add 30 dollars else don't add anything
totalValue = int.Parse(Session [“price”]。ToString())* int.Parse(Session [“day”]。ToString())+ ShowFerInUse? 30:0;
这样你就可以在c#中使用iif等价物并同时做ShowFerInUse。