Search.aspx、Results.aspx、Login.aspxという3つのasp.netページがあります。 匿名ユーザーが検索できるようにするため、誰もがsearch.aspxを使用できます。このページには、ASP.NETページのリダイレクト/クロスポスト
Server.Transfer(Results.aspx)
と表示され、結果が表示されます。ユーザーがログインしていないときは、結果ページにログインページへのリンクが表示されます。問題は次のとおりです。 ログイン後、自動的に結果ページにリダイレクトされるようにします。しかし、Login.aspxのPreviousPageプロパティは常にnullなので、私は成功しません。私は
Request.UrlReferrer.LocalPath
を使用する場合、それはSearch.aspxへのリンクではなくResults.aspxです。 また、ユーザーが[結果]ページにいるとき、リンクをクリックして戻ることができるようにするにはどうすればよいですか?Search.aspx上のすべての検索入力条件(テキストボックスなど)はまだ存在します。結果を見たことがありますか?ユーザーを送り返すと、ユーザーの入力はすべて失われます。 通常のハイパーリンク、リンクボタン、および前のページのURLを取得する方法や入力データを保持する方法はまだ分かりません。
これは助けであればAJAXを使うことができますが、「純粋な」asp.netソリューションが望ましいでしょう。
Response.Redirectは実際にブラウザにHTTP 302(?)メッセージを送信し、ブラウザに指定されたページを要求するように指示します。 Server.Transferは新しいページをレンダリングしてブラウザに送信します。ブラウザには新しいページのGETが発行されていないため、最初のページが表示されていると考えられます。そのため、URLはServer.Transferを使用してクライアントと同じままになります。 –