在MVC静态方法中映射路径到图像的正确方法是什么?

本文关键字:方法 是什么 图像 静态方法 MVC 映射 路径 | 更新日期: 2023-09-27 18:10:29

有点纠结…我阅读了SO,发现我应该使用HostingEnvironment.MapPath()。

每次我尝试使用这个方法,但是,我被告知不允许虚拟路径。

我有一个文件位于(项目)'Content'Images'MyImage.jpg

Image image = Image.GetInstance(HostingEnvironment.MapPath("/") + "/Content/Images.cslogo_highres.jpg");

无法找到路径"C:'inetpub'wwwroot'Content'Images'cslogo_highres.jpg"的一部分。

Image image = Image.GetInstance(HostingEnvironment.MapPath("Content") + "/Images/cslogo_highres.jpg");

此处不允许使用相对虚拟路径'Content'。

我尝试了一些其他的组合,谷歌了一下,但还没有能够提出一些工作。我真的很想使用ResolveUrl(~/Content/Images/cslogo_highres.jpg),但它似乎不是一个静态方法下的选项。

对不起,如果这是微不足道的,但我很沮丧的猜测和检查路径。

编辑:答案,出人意料地没有人们想象的那么简洁:

Image image = Image.GetInstance(HostingEnvironment.MapPath(VirtualPathUtility.ToAbsolute("~/Content/Images/cslogo_highres.jpg")));

在MVC静态方法中映射路径到图像的正确方法是什么?

Image image = Image.GetInstance(HostingEnvironment.MapPath(VirtualPathUtility.ToAbsolute("~/Content/Images/cslogo_highres.jpg")));