سؤال

أنا أستخدم ASP.NET MVC2 ولدي تغذية RSS لمدونتي. أنا أستخدم وظائف المربع في System.ServicEmodel.Syndication و RSS20FeedFormatter.

تعمل التغذية بشكل جيد ويمكن قراءتها بواسطة Outlook وكذلك كل متصفح جربته. ومع ذلك ، عندما قمت بتقديم خلاصة 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