RSS канал, как вставить новую информацию к нему - PullRequest
2 голосов
/ 31 января 2011

Я создаю RSS-ленту для своего сайта и продолжаю таким образом: http://www.developerzen.com/2009/01/11/aspnet-mvc-rss-feed-action-result/

Я просто не уверен, как новый канал будет добавлен к нему?

Напримердля сайта, такого как digg.com, предположим, что каждый день вы хотите публиковать 5 самых популярных статей за последние 24 часа каждый день в 8 утра ... как бы я поступил так?

спасибо

1 Ответ

1 голос
/ 31 января 2011

Вы должны сгенерировать эти SyndicationItem экземпляры и вернуть их.В этом примере они жестко закодировали SyndicationFeed и SyndicationItem, но в реальном приложении вы бы извлекли эту информацию из вашей базы данных и сгенерировали бы несколько SyndicationItem динамически.Например:

public ActionResult Feed()
{
    var feed = new SyndicationFeed(
        "Test Feed",
        "This is a test feed",
        new Uri("http://Contoso/testfeed"),
        "TestFeedID",
        DateTime.Now
    );
    IEnumerable<YourModel> topItems = _repository.GetTopItems();
    IEnumerable<SyndicationItem> syndicationItems = topItems.Select(
        item => new SyndicationItem(
            item.Title,
            item.Description,
            new Uri(item.Url),
            item.Id,
            DateTime.Now
        )
    );
    feed.Items = syndicationItems;
    return new RssActionResult() { Feed = feed };
}

Теперь подписчики вашего канала синдикации /somecontroller/feed всегда будут получать самую свежую информацию прямо из вашего хранилища данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...