司机服务费用为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,如果没有,则什么都不做。
感谢您的时间。欢呼声。
答案 0 :(得分:4)
为什么不创建自定义类,添加Car,Price,Day,ChaffterUsed等属性。创建类的对象,填充属性并将对象存储到会话中。在下一页上,从会话加载对象并使用它。
答案 1 :(得分:3)
将下拉值存储到另一个会话变量中,例如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();
答案 2 :(得分:0)
我建议使用Server.Transfer()而不是Response.Redirect(),并使用PreviousPage来获取所需的值。
这将使您免于使用Session,因为在这种情况下不应使用Session。
要知道如何使用PreviousPage,请参阅下面的链接。
http://msdn.microsoft.com/en-us/library/system.web.ui.page.previouspage.aspx
答案 3 :(得分:0)
当您提供在下拉列表中选择服务时,为什么不将该状态存储在会话中? 喜欢
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
答案 4 :(得分:0)
totalValue = int.Parse(Session [“price”]。ToString())* int.Parse(Session [“day”]。ToString())+ ShowFerInUse? 30:0;
这样您可以使用iif equivalent in c#并同时执行ShowFerInUse。