这应该是令人尴尬的简单,但我无法让它工作:我只想在偏导视图模板中显示上传到Umbraco媒体库(Umbraco 7.1.1)的图像。代码是
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
var imgNode = CurrentPage.BannerBackgroundImage;
var imgUrl = umbraco.library.NiceUrl(imgNode);
<div id="banner-wrapper" style="background: url('@imgUrl') center center no-repeat;">
<!-- some irrelevant content -->
</div>
}
其中BannerBackgroundImage是页面的自定义属性。但是,当显示时,@imgUrl
会被#
替换。
我尝试过的其他替代方案是multiple Media Picker images,how to display a Media Picker image,get image from media with Razor和display image from Media Picker,仅举几例。
如果有人能帮我解决我认为的新手问题,我真的很感激!
答案 0 :(得分:35)
我发现这种方式简单明了:
@if (CurrentPage.Image != null && !(CurrentPage.Image is Umbraco.Core.Dynamics.DynamicNull))
{
var m = Umbraco.Media(CurrentPage.Image);
<img src="@m.Url" alt="@m.UrlName" />
}
我希望它可以帮助其他人
答案 1 :(得分:14)
感谢Jesus Mogollon,
我已经崩溃了:
<img src="@Umbraco.Media(CurrentPage.headerBackgroundImage).Url" alt="">
我已将文件设置为强制文件,因此希望我不需要 if 语句部分。
答案 2 :(得分:4)
我曾经有过这样一个出乎意料的困难时间,我觉得这很容易,这段剪辑对我来说很有用。
@if (Model.Content.HasValue("OtherImages"))
{
var otherImages = Model.Content.GetPropertyValue<List<IPublishedContent>>("OtherImages");
foreach (var image in otherImages)
{
if (image != null)
{
<img src="@image.Url" alt="@image.Name" class="img-responsive img-rounded" />
}
}
}
其他大部分帖子对我都不起作用,但我认为API已经发生了一些变化。我使用的是Umbraco 7.6.1。我不确定无效检查是否有必要,但它肯定不会造成任何伤害。
答案 3 :(得分:2)
这对我来说很有用,来自Umbraco 6媒体文档,here
var bannerImage = Umbraco.TypedMedia(Model.Content.GetPropertyValue("plainImage"));
<div class="my-banner-wrapper" style="background-image: url(@bannerImage.GetPropertyValue("umbracoFile"));">
<!-- some irrelevant content -->
</div>
答案 4 :(得分:2)
试试这个
@if (CurrentPage.Image != null && !(CurrentPage.Image is Umbraco.Core.Dynamics.DynamicNull))
{
var m = Umbraco.Media((int)CurrentPage.Image);
<img src="@m.Url" alt="@m.UrlName" />
}
注意:由于Umbraco.Media ambigous构造函数,您应该将CurrentPage.Image转换为int
答案 5 :(得分:1)
<img src="@Umbraco.Media(Convert.ToString(@Umbraco.Field("image"))).umbracoFile" alt="" />
答案 6 :(得分:0)
在模板内
umbraco:Macro runat =“server”language =“cshtml”
img src="@Model.MediaById(Model.photo).umbracoFile" alt=""/
/一把umbraco:宏
--- Model.photo =照片是爱丽丝的名字
答案 7 :(得分:0)
我将其输入到正在使用的模板或母版中的doctype上方部分。
@{
Layout = null;
var regionalPage = Umbraco.Content(this.CurrentPage.Id);
string manangerPhotoUrl = string.Format("https://assets.yourdomain.com{0}", @Umbraco.Media(regionalPage.managerPhoto).Url);
}
然后我将保存字符串值的变量添加到标记中的图像源属性。
<img class="img-responsive" src="@manangerPhotoUrl" />