6

仮想パスから絶対パスおよび URL への変換に関する同様の質問と回答を見てきましたが、手動で文字列を解析せずに URL を仮想パスに変換するにはどうすればよいですか?

例:

「 http://myserver/home.aspx」を「~/home.aspx」に変換したい

上記の例は簡単な文字列解析ルーチンになると思いますが、URL 形式の変更に対応できる適切なソリューションを探しています。

4

2 に答える 2

8

そのほとんどは Uri クラスから取得できます。

new Uri("http://myserver.com/home.aspx").AbsolutePath

次に、〜を先頭に追加するだけです

ただし、サブディレクトリでホストすると壊れる可能性があります-実行中のアプリケーションのコンテキストで具体的に行う方法はないと思います.

編集:これでうまくいくかもしれません:

VirtualPathUtility.ToAppRelative(new Uri("http://myserver.com/home.aspx").AbsolutePath);
于 2009-01-29T21:51:07.767 に答える
3

VirtualPathUtility.ToAppRelative Method (String) は、探しているもののようです ( http://msdn.microsoft.com/en-us/library/ms150163.aspx )

アプリケーションの仮想パスが "myapp" で、仮想パス "/myApp/sub/default.asp" が ToAppRelative メソッドに渡される場合、結果のアプリケーション相対パスは "~/sub/default.aspx" になります。

于 2009-01-29T21:52:49.543 に答える