所以,我现在是Umbraco的新手,我正在关注umbraco.tv的一些教程视频。我已经创建了我的模板,目前正在使用它为我的网站设置主页。我的所有前端都正常工作并正常显示。
我的问题在于图像。我在我的网站上使用了大量图片,并尝试将其与内容相关联,因此可以轻松更改图片(不确定我是否有意义)。
如果您点击上面的链接,那就是我当前导航栏的外观。我希望能够使用Umbraco的媒体选择器来更改LOGO。但是,每次我这样做,它要么给我alt名称或运行时错误。
这是模板上图像的代码。
<img src="@Umbraco.Field("navigationLogo")" height="100" width="50" alt="Logo">
如果你能帮助我,我会很感激。我不确定我是否正确解释了它,所以请随时详细询问。谢谢!
编辑-----
我只是在浏览器上编码,因为它不允许我登录以在本地提取代码(仅在试用版本上,因为我只是测试它是否是一个好的CMS)。
不确定我是否正确行事所以我道歉。我写了这样的代码
@{
var navigationLogo = @Umbraco.AssignedContent.Site().GetPropertyValue("navigationLogo");
var navigationLogoMediaItem = @Umbraco.TypedMedia(navigationLogo);
<img src="@navigationLogoMediaItem.Url" height="100" width="50" alt="Logo" />
}
到目前为止,它给了我以下错误。
编译器错误消息:CS1061:&#39; Umbraco.Web.UmbracoHelper&#39;不包含&#39; AssignedContent&#39;的定义并且没有任何扩展方法&#39; AssignedContent&#39;接受第一个类型为'Umbraco.Web.UmbracoHelper&#39;可以找到(你错过了使用指令或汇编引用吗?
答案 0 :(得分:1)
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = "WebBase.cshtml";
string navigationLogoMediaItem = "";
if (Model.Content.HasValue("navigationLogo"))
{
navigationLogoMediaItem = Model.Content.GetPropertyValue<IPublishedContent>("navigationLogo").Url;
}
}
<img src="@navigationLogoMediaItem" height="100" width="50" alt="Logo" />
你可以试试这个
答案 1 :(得分:0)
我要做一些假设,所以请在这里忍受。
假设1)在您的主节点上(假设文档类型为“home”),您在其上有一个名为“navigationLogo”的属性。 假设2)这是媒体选择器数据类型 假设3)您正在使用Umbraco 7.6或更新版本。 假设4)您没有使用模型构建器
因此,有些假设需要经过几个步骤。
1)获取导航徽标,无论您身在何处。
var navigationLogo = @Umbraco.AssignedContent.Site().GetPropertyValue("navigationLogo");
2)接下来,你需要得到媒体项目,因为我相信你在这个阶段只会有一个UDI。
var navigationLogoMediaItem = @Umbraco.TypedMedia(navigationLogo);
3)此时您需要进行空检查,但要获取徽标的网址,您只需要执行此操作:
<img src="@navigationLogoMediaItem.Url" height="100" width="50" alt="Logo" />
那应该能让你得到你想要的东西。 : - )
答案 2 :(得分:0)
您可以简单地试用此代码。
memberImage is your document type field name
@{
var image = Umbraco.TypedMedia(@Umbraco.Field("memberImage").ToString());
<img src="@image.Url" style="max-width:250px">
}