Question

J'utilise ASP.Net MVC2 et qui ont un flux RSS pour mon blog. J'utilise de la fonctionnalité de la boîte à System.ServiceModel.Syndication et Rss20FeedFormatter.

L'alimentation fonctionne bien et peut être lu par Outlook, ainsi que tous les navigateurs, je l'ai essayé. Cependant quand je soumettais le flux RSS à Google en tant que plan du site je suis arrivé erreurs de validation.
Par curiosité, je validais l'alimentation avec feedvalidator qui a signalé des problèmes similaires.

Feed: http://www.chrispfarrell.com/Blog/Rss

Si vous sautez dans ce flux à feedvalidator.org vous verrez les problèmes.

Il n'y a vraiment pas de code personnalisé passe pour générer le flux RSS.

L'action du contrôleur est

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

Tous les commentaires quant à la raison pour laquelle l'alimentation ne serait pas valable et bien formé? Je peux poster le code pour FeedResult si nécessaire, mais son code assez standard.

Merci

Chris Farrell

Était-ce utile?

La solution

L'alimentation a été l'élément manquant dans la racine élément.

Au lieu d'utiliser un initialiseur d'objet, je me sers un des constructeurs maintenant qui accepte 3 arguments (titre d'alimentation, la description et pais lien alternatif). Le troisième argument pour le lien alternatif d'alimentation rend dans le canal racine balise qui rend l'alimentation maintenant en cours de validité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top