仮想パスから絶対パスおよび URL への変換に関する同様の質問と回答を見てきましたが、手動で文字列を解析せずに URL を仮想パスに変換するにはどうすればよいですか?
例:
「 http://myserver/home.aspx」を「~/home.aspx」に変換したい
上記の例は簡単な文字列解析ルーチンになると思いますが、URL 形式の変更に対応できる適切なソリューションを探しています。
仮想パスから絶対パスおよび URL への変換に関する同様の質問と回答を見てきましたが、手動で文字列を解析せずに URL を仮想パスに変換するにはどうすればよいですか?
例:
「 http://myserver/home.aspx」を「~/home.aspx」に変換したい
上記の例は簡単な文字列解析ルーチンになると思いますが、URL 形式の変更に対応できる適切なソリューションを探しています。
そのほとんどは Uri クラスから取得できます。
new Uri("http://myserver.com/home.aspx").AbsolutePath
次に、〜を先頭に追加するだけです
ただし、サブディレクトリでホストすると壊れる可能性があります-実行中のアプリケーションのコンテキストで具体的に行う方法はないと思います.
編集:これでうまくいくかもしれません:
VirtualPathUtility.ToAppRelative(new Uri("http://myserver.com/home.aspx").AbsolutePath);
VirtualPathUtility.ToAppRelative Method (String) は、探しているもののようです ( http://msdn.microsoft.com/en-us/library/ms150163.aspx )
アプリケーションの仮想パスが "myapp" で、仮想パス "/myApp/sub/default.asp" が ToAppRelative メソッドに渡される場合、結果のアプリケーション相対パスは "~/sub/default.aspx" になります。