【问题标题】:Displaying a content managed image in a Umbraco 6 MVC website在 Umbraco 6 MVC 网站中显示内容管理图像
【发布时间】:2013-08-29 14:46:57
【问题描述】:

我正在开发我的第一个 Umbraco 6 MVC 网站,我只花了大约一个小时来研究如何在剃刀视图中显示内容管理的图像。不可能那么难,我一定是错过了什么……

这就是我最终的结果......

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
    Layout = null;
}
<!Doctype HTML>
<html>
<head>
    <title>blah</title>
</head>
<body>
    <header>
        <img src="@Umbraco.TypedMedia(Int32.Parse(Model.Content.GetPropertyValue("siteLogo").ToString())).GetPropertyValue("umbracoFile")"/>
    </header>
</body>
</html>

...仅显示图像似乎过于复杂?这肯定不是使用剃须刀的最佳做法吗?

【问题讨论】:

    标签: c# asp.net-mvc razor umbraco umbraco6


    【解决方案1】:

    这里有两件事:

    • 您不需要将属性值转换为Int32,因为TypeMedia() 接受stringobject id 参数。

    • 您可以使用IPublishedContentUrl 属性代替GetPropertyValue("umbracoFile")

    这样就变成了:

    <img src="@Umbraco.TypedMedia(Model.Content.GetPropertyValue("siteLogo")).Url"/>
    

    哪个更好,不是吗?显然有很多方法可以缩短此扩展方法,但最近一位朋友向我展示了uMapper,它允许您创建与您的文档类型相对应的强类型对象,就像 AutoMapper 一样工作。预先做一点工作,您的代码可以变得更加易于理解和简洁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多