如何使用razor获取umbraco中的绝对媒体文件路径?

时间:2011-08-05 17:15:37

标签: razor umbraco

我尝试过以下一些剃刀代码:

@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

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

我不确定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