我正在构建一个MVC应用程序,其中我正在从文件系统中读取文件列表,我想将该文件的相对URL传递给视图,最好以"〜/"为前缀,以便选择任何视图时cab渲染适当的URL.
为此,我需要枚举文件系统中的文件,并将其物理路径转换回相对URL.我已经尝试了一些算法,但我担心效率和最小的字符串操作.另外,我相信.Net Framework中没有任何东西可以执行此操作,但是最新的MVC版本中有什么可以吗?
目前我不知道有任何内置的方法,但这并不困难,我这样做:
我们需要获取Application root,并在我们的新路径中替换它 ~
我们需要将反斜杠转换为斜杠
public string ReverseMapPath(string path) { string appPath = HttpContext.Current.Server.MapPath("~"); string res = string.Format("~{0}", path.Replace(appPath, "").Replace("\\", "/")); return res; }