【问题标题】:Whats the right way to map path to image in MVC static method在 MVC 静态方法中将路径映射到图像的正确方法是什么
【发布时间】:2011-10-04 17:31:04
【问题描述】:

为此苦苦挣扎...我阅读了 SO,发现我应该使用 HostingEnvironment.MapPath()。

不过,每次我尝试使用此方法时,都会被告知不允许使用虚拟路径。

我有一个位于 (project)\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");

此处不允许使用相对虚拟路径“内容”。

我尝试了其他一些组合,在 Google 上搜索了一下,但一直没有找到可行的方法。我真的很想使用 ResolveUrl(~/Content/Images/cslogo_highres.jpg) 但它似乎不是静态方法下的选项。

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

编辑:回答,令人惊讶的是没有人们期望的那么简洁:

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

【问题讨论】:

    标签: c# asp.net path


    【解决方案1】:
    Image image = Image.GetInstance(HostingEnvironment.MapPath(VirtualPathUtility.ToAbsolute("~/Content/Images/cslogo_highres.jpg")));
    

    【讨论】:

    • 此上下文中不存在页面。
    • 现在试试,不确定代码在什么上下文中运行,我假设是一个控制器?
    • 确实如此。对不起,我应该更清楚。我检查了您的编辑 - 但不,也无法从此处访问 Url。它确实为我提供了一个新的 googleable 术语,但最终得到了正确的答案。将您标记为正确的帮助,将答案编辑到原始帖子中。
    • 酷,我会更改我的答案,以便将来与您的发现相匹配。
    猜你喜欢
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多