在 ASP.Net 应用程序中执行 Server.MapPath 逆向操作的最有效方法是什么

2024-03-23

我正在构建一个 MVC 应用程序,其中我正在从文件系统读取文件列表,并且我想将该文件的相对 URL 传递给视图,最好以“~/”为前缀,以便选择任何视图都可以渲染适当的网址。

为此,我需要枚举文件系统中的文件并将它们的物理路径转换回相对 URL。我尝试过一些算法,但我担心效率和最少的字符串操作。另外,我相信 .Net Framework 中没有任何内容可以执行此操作,但是最新的 MVC 版本中是否有可以执行此操作的内容?


目前我不知道有什么内置方法可以做到这一点,但这并不难,我是这样做的:

  • 我们需要获取应用程序根目录,并将其替换为新路径中的~
  • 我们需要将反斜杠转换为斜杠

public string ReverseMapPath(string path)
{
    string appPath = HttpContext.Current.Server.MapPath("~");
    string res = string.Format("~{0}", path.Replace(appPath, "").Replace("\\", "/"));
    return res;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ASP.Net 应用程序中执行 Server.MapPath 逆向操作的最有效方法是什么 的相关文章

随机推荐