0

運転手サービスの費用は 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 ドルを追加する方法がわからないことです。ユーザーが「はい」を選択した場合と同様に、totalValue + 30 になり、「いいえ」の場合は何もしません。

御時間ありがとうございます。乾杯。

4

5 に答える 5

4

カスタム クラスを作成し、Car、Price、Day、ChafterUsed などのプロパティを追加してみませんか。クラスのオブジェクトを作成し、プロパティを入力して、オブジェクトをセッションに保存します。次のページで、セッションからオブジェクトをロードして使用します。

于 2012-08-01T07:38:36.263 に答える
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();
于 2012-08-01T07:35:14.933 に答える
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
于 2012-08-01T07:38:30.223 に答える
0

Response.Redirect() の代わりに Server.Transfer() を使用し、PreviousPage を使用して必要な値を取得することをお勧めします。

これにより、このシナリオではセッションを使用すべきではないため、セッションを使用する必要がなくなります。

PreviousPage の使用方法については、以下のリンクを参照してください。

http://msdn.microsoft.com/en-us/library/system.web.ui.page.previouspage.aspx

于 2012-08-01T07:37:26.570 に答える
0

totalValue = int.Parse(Session["price"].ToString()) * int.Parse(Session["day"].ToString()) + ShowFerInUse ? 30:0;

このようにして、C#で同等の iif を使用し、同時に ShowFerInUse を実行できます。

于 2012-08-01T07:40:31.223 に答える