我正在 Asp.net Core 1.0 MVC 6 工作
我正在尝试编写一个组件来从我的网站提供 RSS 提要。
I found 这个帖子这表明 System.ServiceModel.Syndicate 尚未移植到 ASP.NET CORE。
我无法定位完整的 .NET 框架。
建议编写为 xml 解析器。然而,我正在努力思考可能需要的一切。
我已经构建了将数据转换为 XML 的功能,但现在需要更好地了解如何允许从 IActionResult 调用此功能(或者实际上如何生成可以放置在我的页面上的链接)。
我可以提供我的代码示例,但不确定它会有帮助。
有人能指出我实现这一目标的正确方向吗?
我还在这篇文章中找到了一个答案,它指出了一些想法,但我认为是 MVC6/Asp.net Core 之前的:ASP.NET MVC 中的 RSS 源
// action to return the feed
[Route("site/GetRssFeed/{type}")]
public IActionResult GetRssFeed(ArticleStatusTypes type)
{
var feed = _rss.BuildXmlFeed(type);
return Content(feed, "text/xml");
}
public string BuildXmlFeed(ArticleStatusTypes type)
{
var key = $"RssFeed{Convert.ToInt32(type)}{_appInfo.ApplicationId}";
var articles =
_cache.GetCachedData(key) ??
_cache.SetCache(key, _service.GetItems(Convert.ToInt32(type), _appInfo.CacheCount));
StringWriter parent = new StringWriter();
using (XmlTextWriter writer = new XmlTextWriter(parent))
{
writer.WriteProcessingInstruction("xml-stylesheet", "title=\"XSL_formatting\" type=\"text/xsl\" href=\"/skins/default/controls/rss.xsl\"");
writer.WriteStartElement("rss");
writer.WriteAttributeString("version", "2.0");
writer.WriteAttributeString("xmlns:atom", "http://www.w3.org/2005/Atom");
// write out
writer.WriteStartElement("channel");
// write out -level elements
writer.WriteElementString("title", $"{_appInfo.ApplicationName} {type}" );
writer.WriteElementString("link", _appInfo.WebsiteUrl);
//writer.WriteElementString("description", Description);
writer.WriteElementString("ttl", "60");
writer.WriteStartElement("atom:link");
//writer.WriteAttributeString("href", Link + Request.RawUrl.ToString());
writer.WriteAttributeString("rel", "self");
writer.WriteAttributeString("type", "application/rss+xml");
writer.WriteEndElement();
if (articles != null)
{
foreach (var article in articles)
{
writer.WriteStartElement("item");
writer.WriteElementString("title", article.Title);
writer.WriteElementString("link", _appInfo.WebsiteUrl); // todo build article path
writer.WriteElementString("description", article.Summary);
writer.WriteEndElement();
}
}
// write out
writer.WriteEndElement();
// write out
writer.WriteEndElement();
}
return parent.ToString();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)