1

私の最初のページには、その計画に関連する金額列のリストがあります。ある列をクリックすると、別のページにリダイレクトされます..そのページでは、前にクリックした金額を表示したいと思います。以前にセッションを使用したことはありません。今、私は試しました。しかし、それは常に単一の金額のみを表示しています..複数の値のセッションを作成する方法がわかりません..

コントローラ

        Session["rs360"] = "Rs. 360";
        Session["rs1000"] = "Rs. 1000";
        Session["rs1500"] = "Rs. 1500";

意見

 <div><%:Session["rs360"] %></div>

実際のビュー(Index.Cshtml)

 <div id="rs360">
    <span class="font18">Rs.360</span> 
 </div>

<a href="<%: Url.Action("Payment", "Home") %>"><img src="../../Content/Images/Subscribe now on click.png" class="btn" onclick="return sms_confirm1()" /></a>

<div id="rs1000">
  <span class="font18">Rs.1000</span> 
 </div>

<a href="<%: Url.Action("Payment", "Home") %>"><img src="../../Content/Images/Subscribe now on click.png" class="btn" onclick="return sms_confirm1()" /></a>

ボタンをクリックすると、支払いという別のビューに移動します

 <td>
   <a class="callpickupcash" href="<%: Url.Action("ElectronicTransfer", "Home") %>"><img src="/Content/Images/ebanking.png" class="Featured-plan"></a>
 </td>

この上のボタンをクリックすると、ポップアップメニューが1つ開きます...そのメニューで、金額の値を表示する必要があります..

ここでのみ、私はすでにトップで宣言しているものを次のセッションに渡しました

<div><%:Session["rs360"] %></div>

ここでセッション変数を指定したので、結果は 360 と表示されますが、1000 をクリックすると変化するはずです。これを行う方法は?

4

2 に答える 2

2

localStorage() 関数を使用して、質問に対する答えを見つけました。

次のような値のラジオボタンを渡しました

<%:html.radiobutton("smscount",500,true)%>

Jクエリ

<script type="text/javascript">
   function sms_confirm() {

       var amount = $("input:radio[name=smscount]:checked").val();
       localStorage.setItem("smscount", amount);
       if (r == false) {
           return false;
       }

   }

ページをリダイレクト

ここでは、テキストボックスに値を表示しています。だから私はテキストボックスIDを取ります..

$(function () {
          var textbox = $('#Amount');
          var checkValue = localStorage.getItem("smscount")
          textbox.val(checkValue);

      });
于 2013-10-29T10:52:12.307 に答える
1

他にセッションを使用していない場合は、この問題にセッションは必要ないことをお勧めします。クリックされた金額をそのリンクで呼び出しているアクション メソッドに渡すだけで、その金額を 2 番目のビューに渡すモデルに組み込むことができます。これは、viewData を使用するか、その情報を含むビュー モデルに厳密に型指定されたビューを使用することで実現できます。

編集

わかった。これが正しいかどうか見てみましょう。レンダリングされる最初のビューのリンク:

Url.Action("Payment", "EmployerVas")

以下でレンダリングされたボタンを含むビュー (view2) をレンダリングする EmployerVas の Payment メソッドを呼び出します。

Url.Action("ElectronicTransfer", "EmployerVas","Employer")

これによりポップアップ メニューが開き、最初のビューでクリックされた値がポップアップに表示されます。それがあなたがやろうとしていることであり、あなたがやっていることをあまり変えずにviewModelベースのシステムに移行するのであれば、私は次のように変更します:

 Url.Action("Payment", "EmployerVas", new{amount="360"})

EmployerVas コントローラーの Payment メソッドを変更して、int 型または long 型などの入力パラメーターを受け入れるようにします。

次に、必要に応じてそれをセッションに保存してview2に渡し、view2でリンクを再度変更してその値を渡すことができます(または、セッションに保存された値を使用したい場合はリンクをそのままにしておきます):

Url.Action("ElectronicTransfer", EmployerVas","amountToSHow=sessionOrViewDataPassedValue")

値はセッション内にあるため、それを使用するか、上記と同じタイプで amountToShow という名前の入力値を受け入れるように ElectronicTransfer メソッドを変更して、それをポップアップに渡すことができます。

于 2013-10-25T05:21:50.617 に答える