2012-02-09 17 views
0

ちょうどServer.Transferの二つのレベルをやってASPである何の制限不思議?つまり、あるページが別のページに転送され、もう1つのページに転送されます。クラシックASPリダイレクトタイトル発行

は、ここに私たちの現在の設定です。 SEOを喜ばすため、キーワードを含む「偽の」URLを作成しました。次に、404エラーハンドラ(IIS)がこれらを取り出し、別のASPページにリダイレクトして、URLからいくつかの重要な情報を取り出し、 "実際の"ページにServer.Transferを実行します。この投稿の範囲外の理由から、このページからさらにServer.Transferを作成する必要があります。ここでは、ページタイトルを設定する必要があります。

これは可能ですか?何をしたい

+0

3ページ目のページタイトルを設定することを止めていることは何ですか?あなたはどんな問題にも直面しています – Ravia

+0

私はそれがサーバー側のコードでは可能ではないと思います。 D:あなたは –

答えて

1

は確かに可能です。

確かにいくつかの制限がありますが、デイジーチェーンを使用するサーバー転送の数に制限はありません。悪質なサイクルを作成しないように注意してください:)

制限は次のとおりです。 server.transfer(およびその点についてはserver.executeも)は、前のページの変数コンテキストにアクセスできません。

したがって、page1にAge = 50と言う変数を設定し、page1がpage2にserver.transferを実行した場合、page2で宣言されたAge変数について何も知りません。実際には、page2で同じ変数(Age)を薄暗くすることもできますが、エラーは発生しません。これがためではない、どちらも.transfer'ed、また.execute'dページは次のように動作し、[ - !含める...]ファイルが...

だから何をしますか? server.transferを使用してデイジーチェーン接続する予定のページ間で情報をどのように共有しますか?答えはセッション変数を使用することです!それは1つの効果的な方法です。(もちろん、あなたはあなたの方法でdbやテキストファイルに書き込むことができますが、なぜですか?)

あなたのpage2とpage3が元のページと共有できる唯一のもの1クエリ文字列であり、投稿パケット&です!これらのリクエストのコレクションは、転送された(または実行された)ページでも利用できます。つまり、元のページ(page1)がpage1.asp?age =とヒットした場合、page2とpage3の両方でリクエスト(「age」) 99

とにかく、戻ってあなたの組織にきます。質問...あなたが望むのは確かに可能です...
page1に変数を設定しないでください。単にセッション変数を使って作業してください...

そしてセッション変数をクリーンアップするのを忘れないでください。最終ページで行われます。

これはあなたに役立つことを願っています...

+0

おかげでチームメイト..しかしJavaScriptを使用することができ、私は私が何をしようとしています何の完全に正確な説明を与えていないかもしれないと思うが、それにもかかわらず、私はそれを考え出しました –