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

ASP.Net Display image in view using Umbraco CMS (Archetype)

所以我将 Umbraco CMS 与 Archetype 一起使用,并尝试获取图像 属性 以显示在前端。我让它按照附加图片显示我的其他 3 个字段,但我正在努力为 mediaitem 显示它,我做错了什么

// HomeController.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);
    }
}

// 型号 - FeaturedItem.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;