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

zlo*_*log 2 umbraco razor

我尝试了下面的剃刀代码:

@room.Media("summaryImage","umbracoFile")
Run Code Online (Sandbox Code Playgroud)

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

编辑:

我试过了

@{
  dynamic summaryImagePath = room.Media("summaryImage","umbracoFile");
}
@Page.ResolveUrl(@summaryImagePath)
Run Code Online (Sandbox Code Playgroud)

@Page.ResolveUrl(@room.Media("summaryImage","umbracoFile"))
Run Code Online (Sandbox Code Playgroud)

但我一直收到错误:

Error loading Razor Script Cannot perform runtime binding on a null reference
Run Code Online (Sandbox Code Playgroud)

尽管@room.Media("summaryImage","umbracoFile")给了~/media/155/lux.jpg.

有任何想法吗?

mar*_*pet 6

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

@HttpContext.Current.Server.MapPath(room.Media("summaryImage","umbracoFile"))
Run Code Online (Sandbox Code Playgroud)

编辑:

如果您要查找绝对URL,可以使用以下变体之一:

@Page.ResolveUrl(room.Media("summaryImage","umbracoFile"))
Run Code Online (Sandbox Code Playgroud)

要么

@VirtualPathUtility.ToAbsolute(room.Media("summaryImage","umbracoFile"))
Run Code Online (Sandbox Code Playgroud)

您可能希望阅读有关解析URL的不同方法的文章.