在Umbraco 6 MVC网站中显示内容管理的图像

Tom*_*ley 1 c# asp.net-mvc umbraco razor umbraco6

我正在开发我的第一个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>
Run Code Online (Sandbox Code Playgroud)

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

Dig*_*ift 6

这里有两件事:

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

  • 您可以使用而不是的Url属性IPublishedContentGetPropertyValue("umbracoFile")

所以它变成:

<img src="@Umbraco.TypedMedia(Model.Content.GetPropertyValue("siteLogo")).Url"/>
Run Code Online (Sandbox Code Playgroud)

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