0

サーバーを実行するASPにはどのような制限があるのか​​疑問に思っています.2つのレベルを転送しますか?したがって、ページが別のページに転送され、次に別のページに転送されます。

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

これは可能ですか?

4

1 に答える 1

1

あなたが望むことは確かに可能です。

確かに、いくつかの制限があります...しかし、制限は、デイジーチェーン接続する予定のサーバー転送の数ではありません...悪循環を引き起こさないように注意してください:)

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

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

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

page2とpage3が元のpage1から共有できる他の唯一のものは、クエリ文字列と投稿とCookieのデータです。これらのリクエストコレクションは、転送された(または実行された)ページで引き続き使用できます。これは、元のページ(page1)がpage1.asp?age =としてヒットした場合、page2とpage3の両方でrequest( "age")を実行できることを意味します。 99

とにかく、あなたの組織に戻ってきます。質問...あなたが望むことは確かに実行可能です...ページ
1に変数を設定せず、単にセッション変数を操作してください...

最後のページが完了したら、セッション変数をクリーンアップすることを忘れないでください。

これがお役に立てば幸いです...

于 2012-02-09T23:55:35.640 に答える