2017-08-24 24 views
2

私はあるページから別のページにデータを渡す必要があるというシナリオがあります。 Inorderは現在、私は以下のようにクエリ文字列を使用しています。あるページから別のページにデータを渡す方法

function showNextPage(Reference) { 
    window.location.href = MasterPageVars.BaseUrl + 'Home/details?Reference=' + Reference; 
} 

これは問題なく動作します。しかし、今では、日付値との間の複数の値を次のページに渡したいと考えています。私は、クエリ文字列を使用してそれらを渡すことは、適切ではないと思います。

データベースからデータを取得できます。しかし、データベースへの別の呼び出しが必要になります。誰かが私がここで使うことができる他の方法を指摘できますか?私はhiddenfor、session、cookieも使用できることを知っていました。何が最善の方法です ?

ありがとうございました。それが非同期であるという理由だけで、$.ajaxコールを使用し、より良い、 http://yourhost.domain/Controller/Method?date=yy-mm-dd


しかし、私のアドバイスを取る:

+0

クエリ文字列にデータを渡すことは絶対にうまくいきますが、不適切だと思われる理由は考えられません。 MVCを使用しているので、必要に応じてルーティングを設定できますが、それでもURL経由でデータを渡しています。 –

+0

GETメソッドに値を渡す唯一の方法は、クエリ文字列値(またはルート値)を使用することです –

+0

罰金ですが多すぎるパラメータについては、本当に醜いURLを作成するだけでなく、例外をスローする危険性がありますクエリ文字列の制限のためです。 –

答えて

0
@using (Html.BeginForm("Method", "Controller", FormMethod.Get)) 
     { 
     <input type="datetime" name="date" placeholder="Type the date"/> 
<button type="submit" class="btn btn-default"> 
      Submit 
     </button> 
} 

ボタンをクリックした後、あなたはちょうどこのように入力した日付を渡しますあなたを別のページにリダイレクトすることはありません。

.ajax({ 
      type: 'GET', 
      url: '/Controller/Method/', 
      data: $('input').val(), 
      success: function() { 
          } 
});