2011-09-05 4 views
0

私はSEOに優しいURLを受け取って処理するaspxページ(SEO.aspx)を持っており、server.transferを使用して関連するaspxページにコントロールを転送します。server.transferを実行しているときに、応答オブジェクトが受信リソースに渡されますか?

特定の条件に基づいて、SEO.aspxにクッキー値を設定してから、関連するaspxページにコントロールを転送します。私SEO.aspx中のSO

HttpCookie NewVer = new HttpCookie("newver", "true"); 
Response.Cookies.Add(NewVer); 

しかし、私は、これは最終的な応答かで利用できるようになりますかどうかわからないです。私はhttp://msdn.microsoft.com/en-us/library/system.web.httpserverutility.transfer.aspxと読みますが、応答オブジェクトについては何も指定していません。

予想される動作は何ですか?

+0

リンク先のドキュメントは_classic_ asp用です。あなたはあなたの質問をASP.NETとしてタグ付けしました。どちらですか? – Oded

+0

@Oded - Server.TransferはClassic aspだけでなく、.NET Frameworkでもあります。 –

+0

@David - 関連性はありません。しかし、リンクは完全に間違っています。 _wrong_ 'Transfer'のドキュメントです。 – Oded

答えて

1

私が理解しているように、Server.Transferはリクエストの実行をあるリソースから別のリソースに移します。したがって、Server.Transfer( "SomeOtherPage.aspx")を呼び出す前にSEO.aspxでコードを実行すると、SomeOtherPage.aspxリソースが実行される前にそのコードが実行されます。

これは、簡単にクッキーを探してによってテストされた - Firefoxを使用してたとえば、Firebugの(http://getfirebug.com/)とFireCookie(https://addons.mozilla.org/en-US/firefox/addon/firecookie/)をインストールし、テスト条件を再現 - FireCookieはクッキーがブラウザに植えられたかどうかを示します。

+0

したがって、応答オブジェクトは結局渡されます! – shashi

+0

しかし、 'Request.Cookies'コレクションについては注目に値する:' Response.Cookies'コレクション内の既存のクッキーを変更した後も、クッキーは 'Request.Cookies'でも表示されますが、**初期クッキーはそこに残ります** 。そこからアクセスすると、常に最初のもの(更新されたものではなく最初のもの)が得られます。通常、これはあなたが望むものです(UAによって送信される 'Request' yield値のクッキー、' Response'のクッキーはUAに送信される値を生成します)。しかし、あなたは 'Server.Transfer'を使うので、次のページには最初のクッキーが表示されます。 – tne

関連する問題