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

如何使用razor获取umbraco中的绝对媒体文件路径?,razor,umbraco,Razor,Umbraco,我尝试了以下razor代码: @room.Media("summaryImage","umbracoFile") 但是我得到了类似于~/media/155/lux.jpg的东西,我如何删除开头的~来获得服务器路径,即/media/155/lux.jpg或http://some_url/media/155/lux.jpg 编辑: 我试过了 @{ dynamic summaryImagePath = room.Media("summaryImage","umbracoFile"); } @Pa

我尝试了以下razor代码:

@room.Media("summaryImage","umbracoFile")
但是我得到了类似于
~/media/155/lux.jpg
的东西,我如何删除开头的
~
来获得服务器路径,即
/media/155/lux.jpg
http://some_url/media/155/lux.jpg

编辑:

我试过了

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

但我一直在犯错误:

Error loading Razor Script Cannot perform runtime binding on a null reference
即使
@room.Media(“summaryImage”、“umbracoFile”)
给出了
~/Media/155/lux.jpg


有什么想法吗?

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

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

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

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


您可能想阅读此内容。

使用此内容,我得到了类似于C:\inetpub\wwwroot[path to media]\media\155\lux.jpg的内容。我只需要/media/155/lux.jpg位。我已经更新了问题以反映这一点。Page.ResolveUrl给了我一个空引用错误,但virtualPath实用性.ToAbsolute工作得非常出色!可能是因为razor脚本没有如下所示的页面上下文:
@Page.ResolveUrl(room.Media("summaryImage","umbracoFile"))
@VirtualPathUtility.ToAbsolute(room.Media("summaryImage","umbracoFile"))