- PR -

Server.Transferで困り事

1
投稿者投稿内容
ペンギン
常連さん
会議室デビュー日: 2003/11/06
投稿数: 39
投稿日時: 2003-12-02 09:24
いつもお世話になっております、VB.NET暦2ヶ月の初心者です。

現在の案件で、親ページからServer.Transferで遷移して子ページが
プロパティを親ページで受け取る部分があります。
プロパティの受け渡しは何も問題ないのですが、子ページで
ブラウザの更新ボタンを押すと親ページが表示されたり、
ブラウザの戻るボタンで子ページから親ページへ戻れなかったり、
親ページのSmartNavigationを子ページが引き継いだりで、
その他の部分の挙動に多大な指摘を入れられてしまいました。

こちらの連載を読んでServer.Transferの仕組みは大体
分かったのですが、いざ使うとなんとも…。
Server.Transferを使用しながら、「親ページと子ページを
切り離して動作」みたいなことはできないのでしょうか?
NYRL
ベテラン
会議室デビュー日: 2003/07/14
投稿数: 90
投稿日時: 2003-12-02 09:34
Response.Redirect について調べてみるといいかも・・・

Server.Transferの仕組みはサーバー側で転送して結果(子ページ)のみを返すので
ブラウザ側は転送前(親ページ)を表示していると思っているのです。

ペンギン
常連さん
会議室デビュー日: 2003/11/06
投稿数: 39
投稿日時: 2003-12-02 09:42
お返事ありがとうございます。

Response.Redirectで遷移・SessionまたはQueryStringで
値を渡すパターンは他ページでやっているので存じ上げているのですが、
いざ改修をするにはなにぶん切迫しすぎている状況で…。

それにしても、値を渡す効果を使いたくてServer.Transferを
使用したのですが、製造の際はそのような”副作用”が
あるとはつゆ知らず。
本当に「思ったとおり」でなく「作ったとおり」に動きますね…。
uja
会議室デビュー日: 2003/11/23
投稿数: 6
投稿日時: 2003-12-02 09:58
戻るボタンの挙動については、SmartNavigationを切ると
正常になるかもしれません。

aspxページのディレクティブに
 <%@ Page SmartNavigation="true" %>
と記述するのではなく、
Page_Load時に
 Page.SmartNavigation=true
とし、Server.Transferをするすぐ前に
 Page.SmartNavigation=false
としてみるのはどうでしょうか。

更新ボタンを押したときの挙動は、
Server.Transferを使っている以上、難しいかもしれません。
思いつくのは、Sessionに表示している(子)ページのURLを記述して、
Reload時にPage_Loadで必ずその値にRedirectするくらいでしょうか。

ただ実際に試したわけではないので、本当に動作するかはわかりませんが、
何かのヒントになれば幸いです。
ペンギン
常連さん
会議室デビュー日: 2003/11/06
投稿数: 39
投稿日時: 2003-12-02 11:17
経過を報告します。
>Page_Load時に
> Page.SmartNavigation=true
は成功しましたが、
>Server.Transferをするすぐ前に
> Page.SmartNavigation=false
としても、プロパティの値はfalseになったものの
実際の動きはSmartNavigationが残ったままでした。

Page_Loadの契機となったコントロールによって
判定する(遷移ボタンがクリックされて
Page_LoadされたときだけSmartNavigationを
Trueにしない)などできればよいのですが…。
1

スキルアップ/キャリアアップ(JOB@IT)