RSS20FeedFormatter ينتج RSS غير متشكل جيدًا
-
25-09-2019 - |
سؤال
أنا أستخدم 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> علامة مما يجعل الخلاصة الآن صالحة.