我正在关注作者从 ActionResult 继承以创建将返回 RSS 的 RssViewResult 类的教程。当我运行代码并转到返回 RssViewResult 的操作方法时,就会出现纯 XML 文件。我是 RSS 新手,在本教程中似乎没有创建任何特殊视图。
我需要创建一个视图还是我的代码出错了?
这是代码:
public class RssViewResult : ActionResult
{
public RssViewResult(SyndicationFeed feed)
{
RssFeed = feed;
}
public SyndicationFeed RssFeed { get; set; }
public override void ExecuteResult(ControllerContext context)
{
var resp = context.HttpContext.Response;
resp.ContentType = "application/rss+xml";
var rss = new Rss20FeedFormatter(RssFeed);
using (var xml = XmlWriter.Create(resp.Output))
{
rss.WriteTo(xml);
}
}
}
这是返回 RSS 的操作方法:
public RssViewResult RssFeed()
{
var feed = new SyndicationFeed("News", "Store news",
new Uri(Request.Url.AbsoluteUri))
{
Items = _itemsRepository
.GetItems()
.Select(i =>
new SyndicationItem(
i.Product.Name,
i.Product.Description,
new Uri(Request.Url.AbsoluteUri)))
};
return new RssViewResult(feed);
}