RSS в ASP.NET MVC

 

Зробити RSS feed в ASP.NET MVC досить просто. Для початку створимо клас RssActionResult, успадкований від ActionResult наступним чином:


 

  1. public class RssActionResult : ActionResult   

  2. {   

  3.     public SyndicationFeed Feed { get; set; }   

  4.   

  5.     public override void ExecuteResult(ControllerContext context)   

  6.     {   

  7.         context.HttpContext.Response.ContentType = “application/rss+xml”;   

  8.   

  9.         Rss20FeedFormatter rssFormatter = new Rss20FeedFormatter(Feed);   

  10.         using (XmlWriter writer = XmlWriter.Create(context.HttpContext.Response.Output))   

  11.         {   

  12.             rssFormatter.WriteTo(writer);   

  13.         }   

  14.     }   

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

У RssActionResult ми повертаємо серверний заголовок content-type з типом application / rss + xml. Для форматування rss фідов використовується стандартний Rss20FeedFormatter клас, що дозволяє повертати структурований xml стандарту RSS 2.0.


Тепер просто створюємо action, наприклад такий:



  1. public ActionResult Feed()   

  2. {   

  3.     SyndicationFeed feed =   

  4.         new SyndicationFeed(“ProgBlog RSS”,   

  5. “Підписка”,

  6.                             new Uri(“http://www.progblog.ru/Feed”),   

  7.                             “TestFeedID”,   

  8.                             DateTime.Now);   

  9.   

  10.     SyndicationItem item =   

  11. new SyndicationItem (“Перший пост”,

  12. “Зміст першого поста”,

  13.                             new Uri(“http://www.progblog.ru/First-post”),   

  14.                             “TestItemID”,   

  15.                             DateTime.Now);   

  16.   

  17.     List<SyndicationItem> items = new List<SyndicationItem>();   

  18.     items.Add(item);   

  19.     feed.Items = items;   

  20.   

  21.     return new RssActionResult() { Feed = feed };   

  22. }  
public ActionResult Feed()
{
SyndicationFeed feed =
new SyndicationFeed(“ProgBlog RSS”,”Підписка”,
new Uri(“http://www.progblog.ru/Feed”),
“TestFeedID”,
DateTime.Now);
SyndicationItem item =new SyndicationItem (“Перший пост”,”Зміст першого поста”,
new Uri(“http://www.progblog.ru/First-post”),
“TestItemID”,
DateTime.Now);
List<SyndicationItem> items = new List<SyndicationItem>();
items.Add(item);
feed.Items = items;
return new RssActionResult() { Feed = feed };
}

Ось так просто і красиво створюємо feed і один елемент підписки, а потім повертаємо у вигляді RssActionResult “а. Приємного вам програмування 🙂

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*