آموزش ایجاد RSS در MVC 5
0 0

آموزش ایجاد RSS در MVC 5


آموزش ایجاد RSS در MVC 5

در این پست نحوه ایجاد RSS در MVC 5 را قرار داده ایم.

RSS مخفف Really Simple Syndication میباشد که بشما اجازه میدهد محتویات سایت خود را دسته بندی کرده و با یک فرمت سریع و استاندارد تیتر مقالات و اخبار سایت خود را در دسترس دیگران قرار دهید. فرمت فایل های RSS همان XML است. و بصورت اتوماتیک آپدیت میشود.
بدون وجود RSS کاربران باید هر روز سایت شما را چک کنند تا بتوانند از تازه های سایت شما باخبر شوند . اما با این تکنولوژی ، کاربران ، RSS چندین سایت را در یک برنامه RSS aggregator (یا RSS خوان) در کنار هم می بینند و تایتل نوشته های اخیر سایت شما را بدون مراجعه به سایت شما مشاهده میکنند.

 

برای ایجاد RSS در MVC 5 یک کلاس به نام RssResult ایجاد کنید و کدهای زیر را برای کلاسی که ایجاد کردید همانند مثال زیر تغییر دهید.

using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel.Syndication;
using System.Web;
using System.Web.Mvc;
using System.Xml;

namespace MyProjectName.Infrastructure
{
    public class RssResult : FileResult
    {
        private readonly SyndicationFeed _feed;

        /// <summary>
        /// Creates a new instance of RssResult
        /// based on this sample 
        /// http://www.developerzen.com/2009/01/11/aspnet-mvc-rss-feed-action-result/
        /// </summary>
        /// <param name="feed">The feed to return the user.</param>
        public RssResult(SyndicationFeed feed)
            : base("application/rss+xml")
        {
            _feed = feed;
        }

        /// <summary>
        /// Creates a new instance of RssResult
        /// </summary>
        /// <param name="title">The title for the feed.</param>
        /// <param name="feedItems">The items of the feed.</param>
        public RssResult(string title, List<SyndicationItem> feedItems)
            : base("application/rss+xml")
        {
            _feed = new SyndicationFeed(title, title, HttpContext.Current.Request.Url) { Items = feedItems };
        }

        protected override void WriteFile(HttpResponseBase response)
        {
            using (XmlWriter writer = XmlWriter.Create(response.OutputStream))
            {
                _feed.GetRss20Formatter().WriteTo(writer);
            }
        }
    }
}

حالا به کنترلی بروید که می خواهید اکشن متد RSS را بنویسید ما این اکشن متد را در کنترلر Home نوشتیم.

کدهای اکشن متد Rss به صورت زیر می باشد.

        //[Route("Feed")]
        public virtual ActionResult Rss()
        {
            var items = new List<SyndicationItem>();

            var rssTopic = db.Products.OrderByDescending(c => c.InsertDateTime).Take(10);
            foreach (var varTopic in rssTopic)
            {

                string feedTitle = varTopic.ProductTitle;

                var helper = new UrlHelper(this.Request.RequestContext);
                var url = helper.Action("Index", "Home", new { }, Request.IsSecureConnection ? "https" : "http");
                url += "product/" + varTopic.ProductID + "/" + varTopic.ProductTitle;

                var feedPackageItem = new SyndicationItem(feedTitle, varTopic.ProductSummary, new Uri(url));
                feedPackageItem.PublishDate = varTopic.InsertDateTime;
                items.Add(feedPackageItem);
            }

            return new RssResult("نام سایت", items);
        }

اگر به کدهای بالا نگاه کنید ابتدا 10 مطلب یا محصول  را از دیتابیس خواندیم و سپس در یک متغیر var قرار دادیم و سپس توسط دستور foreach مطالب یا محصولات را خوانیم.

مسیر دسترسی

در این قسمت مسیر دسترسی به مطلب یا محصول را مشخص کردیم که به صورت یک آدرس سفارشی می باشد، در پست های قبلی آموزش ایجاد url های سفارشی را توضیح دادیم.

توضیح ProductSummary

نام فیلدی که از مطلب یا محصول مختصر توضیح داده شده را مشخص کردیم.

تاریخ انتشار InsertDateTime

و در نهایت تاریخ انتشار مطلب یا محصول را مشخص کردیم.

نکته مهم:

اگر به کد بالا نگاه کنید رور اکشن متد Rss یک اتربیوت نوشتیم که نحوه دسترسی به این RSS به صورت www.iranganj.ir/Rss خواهد بود در صورتی که این ویژگی را به متد اضافه نکنید دسترسی به Rss به صورت www.iranganj.ir/Home/Rss خواهد شد.

یک روش دیگر برای این کار استفاده از کلاس RouteConfig.cs در پوشه App_Start است برای این کار باید کد زیر را به این کلاس اضافه کنید.

routes.MapRoute("RSS", "rss",new { controller = "Home", action = "Rss" });

اگه به کد بالا دقت کنید کار خاصی انجام ندادیم و فقط مسیر دسترسی به اکشن متد را مشخص کردیم.

دانلود

نویسنده حسین فتحی
گروه مطلب MVC
نوع مطلب سورس کد و آموزش
تاریخ انتشار ۱۴ خرداد ۱۳۹۴
منبع ایران گنج
تعداد نظرات ۰
قیمت کاربران VIP
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

نظر / سوال

Captcha

این صفحه را می‌پسندم