当前位置:  开发笔记 > 后端 > 正文

在ASP.Net应用程序中执行Server.MapPath反转的最有效方法是什么

如何解决《在ASP.Net应用程序中执行Server.MapPath反转的最有效方法是什么》经验,为你挑选了1个好方法。

我正在构建一个MVC应用程序,其中我正在从文件系统中读取文件列表,我想将该文件的相对URL传递给视图,最好以"〜/"为前缀,以便选择任何视图时cab渲染适当的URL.

为此,我需要枚举文件系统中的文件,并将其物理路径转换回相对URL.我已经尝试了一些算法,但我担心效率和最小的字符串操作.另外,我相信.Net Framework中没有任何东西可以执行此操作,但是最新的MVC版本中有什么可以吗?



1> CMS..:

目前我不知道有任何内置的方法,但这并不困难,我这样做:

我们需要获取Application root,并在我们的新路径中替换它 ~

我们需要将反斜杠转换为斜杠


public string ReverseMapPath(string path)
{
    string appPath = HttpContext.Current.Server.MapPath("~");
    string res = string.Format("~{0}", path.Replace(appPath, "").Replace("\\", "/"));
    return res;
}


请注意,这不适用于网站内虚拟目录中指向根网站结构之外的文件.
推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有