2011-12-20 15 views
2

Move backward through history skipping the same page with different query stringは戻るボタンの歴史:POST

後スキップページ上では、私の質問に似てですが、鉱山は投稿を懸念ように私はより具体的なことでしょう:

シナリオ: ユーザーが製品のリスト上にありますページ。 (Shorts.aspx) ユーザーが製品を選ぶと同じページにフォームのポストバック(POST)を実行 ユーザクリックカートに入れる商品詳細ページ(ベストカーゴShorts.aspx)にナビゲートします。 (Best-Cargo-Shorts.aspx) - これで、詳細ページが再び表示されますが、上部にカート追加メッセージが表示されます。

現在の動作: [TO TOカートに追加]フォームの投稿後。ユーザが戻るボタンをクリックすると、同じページの「プレポスト」バージョンに戻る。

欲望: ユーザーはBACKボタンをクリックすると、私は効果的に「プレPOST」ページをスキップ、それはShorts.aspx、NOT ベスト・カーゴ・Shorts.aspxに行きたいのですが、または2番目のPOSTされたページ(Best-Cargo-Shorts.aspx)をより正確に保存しないでください。

さらに、「ページコンテンツの期限切れ」というメッセージは常に避けたいと考えています。私は歴史上のページのPOSTされたバージョンを望んでいない。このようにして、次のことも当てはまります。

Shorts.aspx>ベスト・カーゴ・Shorts.aspx>ベスト・カーゴ・Shorts.aspx [POST]>Cart.aspx

カートとBACKボタンが押された場合にブラウザでBest-Cargo-Shorts.aspx(POSTなし)に移動します。

これはC#で可能ですか?さらに、javascript以外のソリューションがありますか?

ありがとうございました。

+1

よろしくお願いします。彼らのサイトがJavaScriptの不在下で動作するかどうかは不十分です。 –

答えて

0

これを処理する一般的な方法の1つは、Post-Redirect-Get patternです。要するに

、303参照その他(HTTP 1.1の場合)または302と常に応答は、一時的移動POSTリクエスト(HTTP 1.0場合)ステータスコードGETとして要求をリダイレクトし、通常期限切れを除去するターゲット履歴からPOSTページ。潜在的な欠点として、フォーム・パラメーターがGETにクエリー・ストリングとして添付されている可能性があります。ASP.Net Forms、MVC、または他のWebフレームワークとどのように統合できるか(またはそうでないか)はわかりません。

+0

https://stackoverflow.com/a/9497555/462781 – Pete

0

一般に、ポストリダイレクト取得パターンを使用する必要があります。つまり、ユーザーがPOSTを使用してアイテムをカードに追加した後、302. でBest-Cargo-Shorts.aspxにリダイレクトします。私はポストにAjaxを使用します。私は、サーバー側のコードだけを使用して目的の動作を達成するためにクロスブラウザの方法を考えることはできません。

関連する問題