我尝试过以下一些剃刀代码:
@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)
和
@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
。
有什么想法吗?
答案 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。