RSS20FeedFormatter допускает RSS, который не является хорошо сформированным

StackOverflow https://stackoverflow.com/questions/3809306

Вопрос

Я использую ASP.NET MVC2 и иметь RSS-канал для моего блога. Я использую из функциональности коробки в System.Servicemodel.syndication и RSS20FeedFormatterter.

Корма работает нормально и может прочитать прогноз, а также каждый браузер, который я пробовал. Однако, когда я отправил RSS-канал в Google в качестве сайта, я получил ошибки проверки.
Из любопытства я проверил корм с помощью FeedValidator, который сообщил о подобных вопросах.

Подача: http://www.chrispfarrell.com/blog/rss.

Если вы попмете этот канал в feedvalidator.org, вы увидите проблемы.

На самом деле нет пользовательского кода для генерации RSS.

Действие контроллера

public FeedResult Rss()
        {
            const string baseUrl = "http://www.chrispfarrell.com/Blog/View/";

            var blogs = _blogService.GetBlogs();
            var feed = new SyndicationFeed
                           {
                               Title = new TextSyndicationContent("Chris Farrell"),
                               Copyright = new TextSyndicationContent("Copywrite Chris Farrell 2010")
                           };

            var postItems = blogs.Take(25)
                .Select(p => new SyndicationItem(p.Title,p.Body,new Uri(baseUrl + p.BlogUrl))
                                 {
                                     PublishDate = p.DateCreated,
                                 });

            feed.Items = postItems;
            return new FeedResult(new Rss20FeedFormatter(feed));
        }  

Любые комментарии относительно того, почему канал не будет действительным и хорошо сформирован? Я могу опубликовать код для FeedResult, если это необходимо, но его довольно стандартный код.

Спасибо

Крис Фаррелл

Это было полезно?

Решение

Корм отсутствовалu003Clink> элемент в корнеu003Cchannel> элемент.

Вместо того, чтобы использовать инициализатор объекта, я использую одну из конструкторов, которые принимают 3 аргумента (заголовок подачи, описание и подачу альтернативной линии связи). Третий аргумент для подачи альтернативной ссылки визуализации в корневом каналеu003Clink> Тег, который делает кормить сейчас действительным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top