【问题标题】:How do I get the absolute media file path in umbraco using razor?如何使用 razor 在 umbraco 中获取绝对媒体文件路径?
【发布时间】:2011-08-05 17:15:37
【问题描述】:

我尝试了以下剃须刀代码:

@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

有什么想法吗?

【问题讨论】:

    标签: razor umbraco


    【解决方案1】:

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

    【讨论】:

    • 使用这个我得到类似 C:\inetpub\wwwroot[path to media]\media\155\lux.jpg 的东西。我只想要 /media/155/lux.jpg 位。我已更新问题以反映这一点。
    • Page.ResolveUrl 给了我一个空引用错误,但 VirtualPathUtility.ToAbsolute 就像一个魅力!
    • 可能是因为 razor 脚本没有页面上下文:refactoringaspnet.blogspot.com/2009/09/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2010-12-25
    • 2012-04-24
    相关资源
    最近更新 更多