asp.net - 如何在不手动解析字符串的情况下将 url 转换为 asp.net 中的虚拟路径?

标签 asp.net url path virtual-path

我已经看到有关从虚拟到绝对和 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);

关于asp.net - 如何在不手动解析字符串的情况下将 url 转换为 asp.net 中的虚拟路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/493580/

相关文章:

javascript - $().change 或 $().bind(change,function()) 不适用于 IE8、JQuery、Javascript

url - 碧 Jade : error opening input stream from url

bash - 即使在我的路径上,也无法从命令行执行gradle

javascript - 将文本附加到标签时的 Jquery 问题

c# - 是否出于与 Try-Catch 相同的原因而谨慎使用 Try-Finally?

asp.net - Visual Studio 中的 FTPS 发布失败,结果为 "Secure connection was closed by the remote connection end."

url - Joomla URL 规范化

python - 网络爬虫url地址失败

git - `git difftool` 和名称文件中的空格

python - QFileDialog 和路径中的德语元音变音