display images in rss feeds using SyndicationItem class

2.4k views Asked by At

i create rss feed using System.ServiceModel.Syndication

public ActionResult RSS()
{
    List<C_Node> rssNodes = GetNodeList(takeNum: 20).ToList();
    var syndItems = new List<SyndicationItem>();
    foreach (var item in rssNodes)
    {
        var syndItem = new SyndicationItem()
        {
            Id = item.NodeId.ToString(),
            Title = SyndicationContent.CreatePlaintextContent(String.Format("{0}", item.Title)),
            Summary = SyndicationContent.CreateHtmlContent(HelperMethods.Truncate(item.Details, 400)),
            Content = SyndicationContent.CreateHtmlContent(item.Details),
            PublishDate = item.PostDate
        };
        //syndItem.ElementExtensions.Add("content:encoded", "", SyndicationContent.CreateHtmlContent(item.Details));
        syndItem.Links.Add(SyndicationLink.CreateAlternateLink(new Uri(ConfigurationManager.AppSettings["SiteUrl"] + Url.Action("Details", "Node", new { id = item.NodeId }))));//Nothing alternate about it. It is the MAIN link for the item.
        syndItems.Add(syndItem);
    }

    return new RssFeed(title: Resources.Site.Title,
                       items: syndItems,
                       contentType: "application/rss+xml",
                       description: Resources.Site.Slogan);
}

my question is how to display images with each syndication item ?

2

There are 2 answers

0
Ahmad Alaa On BEST ANSWER

done with adding this code :

syndItem.ElementExtensions.Add(new XElement("image", item.ImageUrl));
0
Ahmad Alaa On

this code also working

syndItem.ElementExtensions.Add(new XElement("enclosure", new XAttribute("type", "image/jpeg"), new XAttribute("url", item.ImageUrl).CreateReader());