RSS Feeds in ASP.NET MVC

The .NET framework exposes classes that handle syndation: SyndicationFeed etc.
So instead of doing the rendering yourself or using some other suggested RSS library why not let the framework take care of it?

Basically you just need the following custom ActionResult and you’re ready to go:

public class RssActionResult : ActionResult
{
    public SyndicationFeed Feed { get; set; }

    public override void ExecuteResult(ControllerContext context)
    {
        context.HttpContext.Response.ContentType = "application/rss+xml";

        Rss20FeedFormatter rssFormatter = new Rss20FeedFormatter(Feed);
        using (XmlWriter writer = XmlWriter.Create(context.HttpContext.Response.Output))
        {
            rssFormatter.WriteTo(writer);
        }
    }
}

Now in your controller action you can simple return the following:

return new RssActionResult() { Feed = myFeedInstance };

There’s a full sample on my blog at http://www.developerzen.com/2009/01/11/aspnet-mvc-rss-feed-action-result/

Leave a Comment