razor - 如何使用 Razor 在 Umbraco 中获取绝对媒体文件路径?

标签 razor umbraco

我已经尝试了以下 Razor 代码:

@room.Media("summaryImage","umbracoFile")

但我得到类似 ~/media/155/lux.jpg 的东西,如何删除初始 ~ 以获得服务器路径,即 /media/155/lux.jpghttp://some_url/media/155/lux.jpg?

编辑:

我试过了

@{
  dynamic summaryImagePath = room.Media("summaryImage","umbracoFile");
}
@Page.ResolveUrl(@summaryImagePath)

@Page.ResolveUrl(@room.Media("summaryImage","umbracoFile"))

但我一直收到错误:

Error loading Razor Script Cannot perform runtime binding on a null reference

即使 @room.Media("summaryImage","umbracoFile") 给出 ~/media/155/lux.jpg

有什么想法吗?

最佳答案

我不确定 Umbraco 中是否有解决方案,我只是使用 .NET 框架。对于 ASP.NET,您可以使用 MapPath将虚拟路径解析为物理文件路径:

@HttpContext.Current.Server.MapPath(room.Media("summaryImage","umbracoFile"))

编辑:

如果您正在寻找绝对 URL,您可以使用以下变体之一:

@Page.ResolveUrl(room.Media("summaryImage","umbracoFile"))

@VirtualPathUtility.ToAbsolute(room.Media("summaryImage","umbracoFile"))

您可能想阅读此 article about different approaches for resolving URLs .

关于razor - 如何使用 Razor 在 Umbraco 中获取绝对媒体文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6960105/

相关文章:

asp.net - 验证时出现 umbraco 公共(public)访问错误

jquery - ASP MVC 中具有不同操作的 Ajax 表单

c# - 每页使用多个 @Html.Action() 是否很昂贵?

razor - Razor View 采用 IEnumerable<Model> 与模型之间的区别?

javascript - HTML 不显示 Angularjs 的变量值

css - Umbraco 中的动态 CSS 样式

c# - Umbraco Lucene 或搜索多个日期范围

语法问题 - Razor MVC4

c# - 用于图像扩展的 ASPNET Core img src 通配符