2011-08-05 40 views
2

我試過的剃刀以下代碼位:如何使用剃刀在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

任何想法?

回答

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

+1

使用此我得到類似於C:\ inetpub \ wwwroot \ [媒體路徑] \ media \ 155 \ lux.jpg。我只想要/media/155/lux.jpg位。我已經更新了這個問題來反映這一點。 – zlog

+0

我相應地更新了我的答案。 – marapet

+0

Page.ResolveUrl給了我一個空引用錯誤,但VirtualPathUtility.ToAbsolute的工作就像一個魅力! – zlog

相關問題