(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

RSS в ASP.NET MVC

Источник: progblog

 

Сделать 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'а. Приятного вам программирования :)

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 01.12.2009 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
Microsoft 365 Apps for business (corporate)
Microsoft 365 Business Standard (corporate)
Microsoft Office для дома и учебы 2019 (лицензия ESD)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Adobe Photoshop: алхимия дизайна
Работа в Windows и новости компании Microsoft
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100