2013-08-29 104 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

這更好,謝謝。 –