PDA

View Full Version : افزودن Rss به سایت



merman.2006
سه شنبه 23 خرداد 1391, 17:53 عصر
سلام
دوستان من یه سایت با mvc نوشتم حالا میخام Rss رو بهش اضافه کنم ولی اطلاعات کافی ندارم.
دوستانی که در این مورد اطلاعاتی دارند لطفا راهنماییم کنند.

با تشکر

mze666
یک شنبه 28 خرداد 1391, 08:57 صبح
سلام - تو قدم اول این refrence رو باید به پروژتون اضافه کنید: (System.ServiceModel) بعد یه کلاس یه جا تعریف میکنید به اسم مثلاً NewsRssResult که از FileResult مشتق شده. به صورت زیر:

public class NewsRssResult : FileResult
{
public List<News> News { get; set; }
public string Title { get; set; }

private Uri currentUrl;

public NewsRssResult() : base("application/rss+xml") { }

public NewsRssResult(List<News> news, string title)
: this()
{
this.News = news;
this.Title = title;
}

public override void ExecuteResult(ControllerContext context)
{
currentUrl = context.RequestContext.HttpContext.Request.Url;
base.ExecuteResult(context);
}

protected override void WriteFile(System.Web.HttpResponseBase response)
{
var items = new List<SyndicationItem>();

foreach (News news in this.News)
{
var item = new SyndicationItem(
title: news.Title,
content: news.Body,
itemAlternateLink: new Uri("http://localhost:21266/Admin/News/Details/" + news.ID),
id: "http://localhost:21266/Market/Admin/News/Details/" + news.ID,
lastUpdatedTime: news.PublishDate
);
//item.PublishDate = DateTime.Now.AddDays(-5);
item.Summary = new TextSyndicationContent(news.Body, TextSyndicationContentKind.Plaintext);
items.Add(item);
}

SyndicationFeed feed = new SyndicationFeed(
this.Title,
this.Title, /* Using Title also as Description */
currentUrl,
items);

Rss20FeedFormatter formatter = new Rss20FeedFormatter(feed);

using (XmlWriter writer = XmlWriter.Create(response.Output))
{
formatter.WriteTo(writer);
}
}
}

بعد یک Controller اضافه میکنید مثلا به اسم RSSController یا هر چیز دیگه ای به صورت زیر:

public class RSSController : Controller
{
private LatestNewsContext context = new LatestNewsContext();

public ActionResult Index()
{
var news = context.News.ToList();

if (news == null)
return new HttpNotFoundResult();

return new NewsRssResult(news, "Our News");
}
}

R_Rajaee_Rad
سه شنبه 28 آبان 1392, 19:06 عصر
سلام
من این کدها رو توی سایتم نوشتم.اما فقط یک فایل xml با محتوای همون بخش هایی تعیین شده تحویل داد
چطوری بفهمم درست کار کرده؟

mze666
سه شنبه 28 آبان 1392, 21:36 عصر
http://www.dotnettips.info/post/1027/%D8%AA%D9%87%DB%8C%D9%87-%D8%AE%D8%B1%D9%88%D8%AC%DB%8C-rss-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%8 7%D8%A7%DB%8C-asp-net-mvc