后面的代码计算

时间:2012-08-01 07:29:12

标签: c# asp.net

司机服务费用为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,如果没有,则什么都不做。

感谢您的时间。欢呼声。

5 个答案:

答案 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。