ASP.Net 使用 Umbraco CMS(原型)在视图中显示图像



所以我正在使用带有原型的Umbraco CMS,并试图获取要在前端显示的图像属性。我让它按照附加的图像显示我的其他 3 个字段,但我正在努力为媒体项显示它,我做错了什么

家庭控制器.cs

public class HomeController : SurfaceController {
public ActionResult RenderTheGroup()
{
List<FeaturedItem> model = new List<FeaturedItem>();
IPublishedContent homepage = CurrentPage.AncestorOrSelf(1).DescendantsOrSelf().Where(x => x.DocumentTypeAlias == "home").FirstOrDefault();
ArchetypeModel featuredItems = homepage.GetPropertyValue<ArchetypeModel>("featuredItemList");
foreach(ArchetypeFieldsetModel fieldset in featuredItems)
{
int imageId = fieldset.GetValue<int>("image");
var mediaItem = Umbraco.Media(imageId);
string image = mediaItem.Url;               
model.Add(new FeaturedItem(
fieldset.GetValue<string>("name"), 
fieldset.GetValue<string>("paragraph"), 
fieldset.GetValue<string>("link"),
image
));
}
return PartialView(PARTIAL_VIEW_FOLDER + "_TheGroup.cshtml", model);
}
}

模型 - 特色项目.cs

public class FeaturedItem
{
public string Name { get; set; }
public string Paragraph { get; set; }
public string Image { get; set; }
public string LinkUrl { get; set; }
public FeaturedItem(string name, string paragraph, string image, string linkUrl)
{
Name = name;
Paragraph = paragraph;
Image = image;
LinkUrl = linkUrl;
}
}

}

//视图

<div class=" col-md-3">
<div class="thumbnail">
@RenderFeaturedItem(@Model[0], null)
</div>
</div>
@helper RenderFeaturedItem(FeaturedItem item, string extraClass)
{
<img src="@item.Image" alt="">
<div class="">
<div class="caption">
<h4>
<a target="_blank" href="@item.LinkUrl">@item.Name</a>
</h4>
<p>@item.Paragraph</p>
</div>
<div class="">
<p>
<a target="_blank" href="@item.LinkUrl">
Link here
<i class="fa fa-chevron-right" aria-hidden="true"></i>
</a>
</p>
</div>
</div>
}

我不知道它是否仍然对您有帮助,但我通过以下方式解决了这个问题:

int imageId = fieldset.ToPublishedContent().GetPropertyValue<int>("image");
var mediaItem = Umbraco.Media(imageId);
string image = mediaItem.Url;    

最新更新