2013-08-29 75 views
1

我正在研究我的第一个Umbraco 6 MVC网站,它只是花了我大约一个小时来研究如何在剃须刀视图中显示内容管理图像。它不能那么难,我必须失去了一些东西......在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> 

...这似乎过于复杂,只显示图像?当然,这不能成为使用剃刀的最佳实践吗?

回答

6

这里包括两个:

  • 你不需要的属性值强制转换为Int32,为TypeMedia()接受stringobject ID参数。

  • 可以使用IPublishedContent代替GetPropertyValue("umbracoFile")

所以它成为的Url属性:

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

哪个更漂亮,不是吗?显然有很多方法可以缩短这种延伸方法,但最近朋友给我看的一种方法是uMapper,它允许您创建与您的文档类型相对应的强类型对象,其工作方式与AutoMapper非常相似。对于一个小小的工作来说,你的代码可以变得更容易理解和简洁。

+0

这更好,谢谢。 –