1

我正在开发我的第一个 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>

...仅显示图像似乎过于复杂?当然这不能是使用剃须刀的最佳实践吗?

4

1 回答 1

6

这里有两件事:

  • 您不需要将属性值强制转换为 a Int32,因为它TypeMedia()接受 astringobjectid 参数。

  • 您可以使用的Url属性IPublishedContent代替GetPropertyValue("umbracoFile")

所以它变成:

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

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

于 2013-08-29T16:13:28.207 回答