- PR -

ASP.NET での Server.Transferについて

1
投稿者投稿内容
踊雀拳士
会議室デビュー日: 2003/10/09
投稿数: 5
投稿日時: 2003-10-09 21:16
はじめまして、全くの初心者です。
恥ずかしい質問かもしれないのですが、どの資料をみてもわかりません
何方か教えてください。
Server.Transferを使ってページ遷移を行う場合、
同一のフォルダであれば可能なのですが、
他のフォルダへ遷移しようとすると、「---子要求のパスが無効です。
仮想パスが必要です。」となってしまいます。
意味がわかりません。

ちなみに同じ構文をResponse.Redirectで書くと目的のぺーじへは
いけるのですが。
私は何を勉強したらいいのでしょうか、それすらわかりません。
どうかどなたかヒントを下さい。
よろしく
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2003-10-10 09:23
フォルダが違う、ということですが
1)Webアプリケーションとして別のもの
2)同一Webアプリケーション内でフォルダ分けしている
のどちらでしょうか。

1の場合、Server.Transferでの遷移は無理だったと思います。
2の場合は遷移先へのパスの記述の仕方が間違っていると思われます。
踊雀拳士
会議室デビュー日: 2003/10/09
投稿数: 5
投稿日時: 2003-10-11 11:46
有難う御座いました。
多分1)のWebアプリケーションとして別のもの
だと思います。ですが「同一Webアプリケーション内」
でフォルダを分ける方法がわかりません。

以下の様にやってみたのですが結果は同じでした

・VisualStudio.NET2003を使用し、VBで記述しています。
・"http://file-server/testroot/AppliA/"にWebForm1.aspxを作ります。
・"http://file-server/testroot/AppliA/"の下にソリューションエクスプローラ
でNewFolder1を追加し、そこにWebform2を作りました。
・ここにボタンを配置し、
  Server.Transfer("http://file-server/testroot/AppliA/WebForm1.aspx") 
 を記述して実行したのですがうまくいきません。

何処が悪いのでしょうか?
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2003-10-14 11:04
この場合
Server.Transfer("http://file-server/testroot/AppliA/WebForm1.aspx")
ではなく
Server.Transfer("../WebForm1.aspx")
でいけるのではないでしょうか。
絶対パスでなく、相対パスで指定しろということですね。

Response.Redirectはクライアントがリクエストしなおすのに対して
Server.Transferはサーバーが直接遷移先のレスポンスを返します。
ブラウザのアドレス欄に遷移もとのアドレスが表示されるのは
そのためです。@IT内にも記事が載っています
http://www.atmarkit.co.jp/fdotnet/aspnet/aspnet16/aspnet16_01.html
踊雀拳士
会議室デビュー日: 2003/10/09
投稿数: 5
投稿日時: 2003-10-16 14:40
お蔭様で、かなり進歩しました。
有難う御座いました。
1

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