我已经使用媒体选择器作为该类型的数据类型,用户将为其选择他们想要的图像作为交易图像。
但由于某些原因,我无法使用剃刀语法来显示图像。如果我制作一个If语句来检查页面是否包含图像,那么它就不会。我认为这是一个问题,因为我误解了一些事情。
我目前的剃刀声明:
<img src="@Umbraco.TypedMedia(Model.Content.GetPropertyValue("deal1image")).Url" />
以上代码不会显示任何内容。
希望你们中的任何一个人都可以指导我做错的事情。我错过的东西。
这是我当前的home.cshtml的样子:
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = "Master.cshtml";
}
<div class="container">
<div class="col-md-4">
<!--Image here-->
<img src="@Umbraco.Media(CurrentPage.deal1image).Url" />
<div class="thumbnail thumbnailcustom thumbnailbg1">
<h3>@Umbraco.Field("dealtitle1")</h3>
<p>@Umbraco.Field("dealdescription1")</p>
</div>
</div>
<div class="col-md-4">
<!--Image here-->
<div class="thumbnail thumbnailcustom thumbnailbg2">
<h3>@Umbraco.Field("dealtitle2")</h3>
<p>@Umbraco.Field("dealdescription2")</p>
</div>
</div>
<div class="col-md-4">
<!--Image here-->
<div class="thumbnail thumbnailcustom thumbnailbg3">
<h3>@Umbraco.Field("dealtitle3")</h3>
<p>@Umbraco.Field("dealdescription3")</p>
</div>
</div>
</div>
答案 0 :(得分:2)
您需要使用Umbraco.Media
来获取媒体。所以喜欢这个
<img src="@Umbraco.Media(Model.Content.GetPropertyValue("deal1image").ToString()).Url" />
或者
<img src="@Umbraco.Media(CurrentPage.deal1image).Url" />
答案 1 :(得分:1)
使用Umbraco.Media的一个例子:
var myPage = CurrentPage.AncestorsOrSelf().Where("DocumentTypeAlias == @0", "yourPageAlias").First();
Umbraco.Media(myPage.myImage.ToString()).Url
答案 2 :(得分:0)
<强>类型的:强>
@if (Model.Content.HasValue("caseStudyImages"))
{
var caseStudyImagesList = Model.Content.GetPropertyValue<string>("caseStudyImages").Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse);
var caseStudyImagesCollection = Umbraco.TypedMedia(caseStudyImagesList).Where(x => x != null);
foreach (var caseStudyImage in caseStudyImagesCollection)
{
<img src="@caseStudyImage.Url" style="width:300px;height:300px" />
}
}
<强>动态:强>
@if (CurrentPage.HasValue("caseStudyImages"))
{
var caseStudyImagesList = CurrentPage.CaseStudyImages.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
var caseStudyImagesCollection = Umbraco.Media(caseStudyImagesList);
foreach (var caseStudyImage in caseStudyImagesCollection)
{
<img src="@caseStudyImage.Url" style="width:300px;height:300px" />
}
}
另外,请仔细检查您的媒体选择器数据类型别名。错别字在这部分很常见。
答案 3 :(得分:0)
与其他答案相比,这可能有点笨拙,但这就是我现在所拥有的。
var imageId = Model.Content.GetPropertyValue<int>("eventPoster"); // gets node id
var evId = evpId.Id; // gets image id
var evMd = Umbraco.Media(evId); // I believe this turns the id into a string
var evUrl = evMd.Url; // gets the url of the string