質問: 恐れ入ります。 asp.netのServer.Transferでページ遷移をしていますが **Transfer後に”自分”のURL**はどこで取得できるでしょうか? つまり ``` Server.Transfer("/dirA/page1.aspx") ``` で遷移したページ/dirA/page1.aspxで自分のURL「/dirA/page1.aspx」を”動的”に知りたい という間抜けな話です。 ちなみに、以下 ``` Page.PreviousPage.Request.Url Page.Request.Url ``` いずれもTransfer前のURIですね。 **Transfer前にどこかに”わざわざ”保存**しておかないと ”自分”のURLすらも取れないのでしょうか。
回答: これが最善であるかは分かりませんが、`Page.GetType().FullName`で > > ASP.dir1_page1_aspx > > > という物理パスに基づいた型名が参照できます。ですので ``` GetType().FullName.Substring(4).Replace("_aspx", ".aspx").Replace('_', '\\') ``` の要領で変換できます。ただし元から`_`が含まれているような場合は特別な考慮が必要です。 また状況によっては`GetType().BaseType.FullName`の名称を使用したほうが良いかもしれません。こちらは各ASPXファイルの`Inherits`属性に記述されている値が取得できますが、変更可能ですので実際のディレクトリー構成とは一致していない可能性があります。