码迷,mamicode.com
首页 > Web开发 > 详细

mvc生成RssFeed[整理]

时间:2016-05-13 09:11:48      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

1.RssFeed实体类

技术分享
 1 /// <summary>
 2     /// RssFeed实体类
 3     /// </summary>
 4     public class RssFeed
 5     {
 6         /// <summary>
 7         /// 标题
 8         /// </summary>
 9         public string Title { get; set; }
10 
11         /// <summary>
12         /// 链接
13         /// </summary>
14         public string Link { get; set; }
15 
16         /// <summary>
17         /// 描述
18         /// </summary>
19         public string Description { get; set; }
20 
21         /// <summary>
22         /// 发表时间
23         /// </summary>
24         public DateTime PublishDate { get; set; }
25     }
View Code

2.RssFeed帮助类

技术分享
 1     /// <summary>
 2     /// RssFeedHelper
 3     /// </summary>
 4     public static class RssFeedHelper
 5     {
 6         /// <summary>
 7         /// 生成RssFeed
 8         /// </summary>
 9         /// <param name="rssFeedList">RssFeed列表</param>
10         /// <returns>RssFeed</returns>
11         public static XDocument GetRssFeed(List<RssFeed> rssFeedList)
12         {
13             XElement channel = new XElement("channel");    // channel节点
14             channel.Add(new XElement[]{
15                 new XElement("title","Test"),    // channel标题
16                 new XElement("link","http://localhost"),    // 页面链接
17                 new XElement("description","Test RSS")    // channel描述
18             });
19 
20             foreach (var rssFeed in rssFeedList)    // 对rssFeed集合中的每个元素进行处理
21             {
22                 XElement item = new XElement("item", new XElement[]{    // 生成一个新的item节点
23                     new XElement("title",rssFeed.Title),    // 为新的item节点添加子节点
24                     new XElement("description",rssFeed.Description),
25                     new XElement("link",rssFeed.Link),
26                     new XElement("pubDate",rssFeed.PublishDate)
27                 });
28                 channel.Add(item);    // 将新的item节点添加到channel中
29             }
30 
31             XDocument doc = new XDocument(
32                 new XDeclaration("1.0", "utf-8", "yes"),    // XML文档声明
33                 new XElement("rss",    // 根节点
34                 new XAttribute("version", "2.0"),    // rss节点的属性
35                 new XElement(channel    // rss的子节点channel
36                     )));
37             
38             return doc;
39         }
40     }
View Code

3.创建RssFeedResult类,继承自ActionResult,以便在ASP.NET MVC的controller中返回RSS。

技术分享
 1     public class RssFeedResult : ActionResult
 2     {
 3         List<RssFeed> Data { get; set; }
 4 
 5         public RssFeedResult(List<RssFeed> data)
 6         {
 7             Data = data;
 8         }
 9 
10         public override void ExecuteResult(ControllerContext context)
11         {
12             if (context == null)
13             {
14                 throw new ArgumentNullException("context");
15             }
16 
17             HttpResponseBase response = context.HttpContext.Response;
18             response.ContentType = "text/xml";    // 设置HTTP头中的ContentType
19             XDocument result= RssFeedHelper.GetRssFeed(Data);    // 获取XML数据
20             response.Write(result.ToString());    // 将XML数据写入response中
21         }
22     }
View Code

4.在controller中调用RssFeedResult(rss)方法即可返回RSS页面

技术分享
 1  <rss version="2.0">
 2    <channel>
 3      <title>channel标题</title>
 4      <link>网页地址</link>
 5      <description>channel描述</description>
 6      <item>
 7        <title>内容1标题</title>
 8        <description>内容1描述</description>
 9        <link>内容1链接</link>
10      </item>
11      <item>
12        <title>内容2标题</title>
13        <description>内容2描述</description>
14        <link>内容2链接</link>    </item>
15    </channel>
16  </rss>
View Code

 

mvc生成RssFeed[整理]

标签:

原文地址:http://www.cnblogs.com/MoWu/p/5485962.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!