RSS в MVC

Почти на любом сайте нужен RSS. Далее я расскажу как сделать RSS на MVC сайте.
Создадим проект MVC.
Для того чтобы Action мог возвращать данные в виде RSS, необходимо создать класс унаследованный от ActionResult. Создадим класс RssActionResult:
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))
{
if (writer != null)
{
rssFormatter.WriteTo(writer);
}
}
}
}
Теперь, создадим Action метод в контроллере Home:
public ActionResult Rss()
{
var feed = new SyndicationFeed("Feed Title", "Feed Description", new Uri("http://Myurl.com/Rss"),
"Feed Id",
DateTime.Now);
var person = new SyndicationPerson("myname@myurl.com",
"My Name", "http://Myurl.com/");
feed.Authors.Add(person);
feed.Copyright = new TextSyndicationContent("Copyright © 2009");
feed.ImageUrl = new Uri("http://Myurl.com/logo.jpg");
feed.Language = "ru-ru";
feed.Links.Clear();
var link = new SyndicationLink(new Uri("http://Myurl.com/Rss"), "alternate", "Title", "text/html", 1000);
feed.Links.Add(link);
feed.BaseUri = new Uri("http://Myurl.com/Rss");
var items = new List<SyndicationItem>();
var item1 = new SyndicationItem("Header 1", "Text 1",
new Uri("http://Myurl.com/1"), "http://Myurl.com/1",
DateTime.Now);
items.Add(item1);
var item2 = new SyndicationItem("Header 2", "Text 2",
new Uri("http://Myurl.com/2"), "http://Myurl.com/2",
DateTime.Now);
items.Add(item2);
feed.Items = items;
return new RssActionResult { Feed = feed };
}
Параметры Id должны быть уникальны.
Запустим приложение и наберем ссылку http://myurl.com/Home/Rss/

PS: Корректность своего feed лучше проверять на сайте http://validator.w3.org/feed/. Он выдаст все ошибки.
Ссылка на проект: RssApplication.zip
arusland.blogspot.com
06.09.2009 22:19
> Параметры Id должны быть уникальны.
може придираюсь, но не понятно, что это за id и почему они должны быть уникальны?
PS: Мои конгретуляции по поповоду внедрения AdSense на свой сайт ;)