2016-04-12 3 views
0

Predicate Builderを使用して、ユーザーがデータベーステーブルをフィルタリングし、アプリケーションで必要な/希望する特定のレコードを検索できるようにします。 pagingPredicate Builderを組み合わせるときSession.Clear()とリダイレクトの問題

は今、私は、彼らが特定のレコード(複数可)を検索した場合ようSessionでユーザーの検索を保存しなければならなかったし、探索が、その後... 1ページが保持できるものよりも多くのレコードを返さ彼らはページ2に行くことができ、それらのクエリに合ったレコードを持っています。

ここで、他のレコードを検索するには、セッションをクリアして新しいセッションを開始する必要があります... インデックスページを検索できます。これは単純です私のコントローラで

<input type="button" class="btn btn-primary top-margin" value="Clear Search" onclick="location.href='@Url.Action("ClearSearch", "DailySummaries", new { area = "" })'" /> 

::彼らは彼らのセッションをクリアするためにクリックできるボタン、ユーザーがそのボタンをクリックしたときに...

public ActionResult ClearSearch() 
{ 
    Session.Clear(); 
    return RedirectToAction("allDailySummaries"); 
} 

しかし、ここで問題ですが、それはそれらを返します。初期ページ。最初のページにリダイレクトせずにセッションをクリアするにはどうすればよいですか?

もっと説明すると、私はすべての毎日の要約を、2006年4月1日から04/12/2016の間で検索したとします。今私はその検索で終わり、何か他のものを検索したい...私は「Clear Search」ボタンを押すが、それがしたいのはセッションをクリアして、それが現在のページにとどまるだけだ。セッションをクリアしてから最初のページにリダイレクトしてください。

何か助けていただければ幸いです。

答えて

0

実装の詳細をもう少し詳しく知りません。個人的に、私がこのような問題を解決しなければならなかったとき、私は良い友達のJavaScriptに戻ってしまう傾向があります。

基本的に、私がたどるプロセスは次のとおりです。アクションは結果を持っているとして、ユーザーセッションが(私はポストを使用するのではなく取得するには、注意することをクリアするためにサーバーにPOSTリクエストを作成するには、JavaScriptの

  1. 使用サーバ上で)
  2. 最初のページをリロードするには、私がリロードするために使用しているjavascriptグリッドプラグインを要求するか、手動ページングを実行している場合は最初のボタンをプログラムでクリックします。

JavaScript以外のユーザーにも優雅な劣化を考慮する必要があります。この場合、リダイレクトはおそらく正しい方法です。

関連する問題