在asp.net core 1.0中创建RSS feed

2023-12-06

我正在 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(使用前将#替换为@)

在asp.net core 1.0中创建RSS feed 的相关文章

  • ASP.NET中如何访问除wwwroot以外的位置

    我可以使用访问服务器的物理位置Server MapPath 这给了我内部的物理路径wwwroot文件夹 我想将一些数据保存到同一服务器的另一个驱动器中D 驾驶 我想我无法获取以下位置的物理位置D 驾驶使用Server MapPath因为它位
  • 如何从 Web 表单请求返回 HTTP 400 - 错误请求错误?

    这个主题几乎说明了一切 我有一个 EstateReport Web 表单 必须使用 EstateId 请求参数来调用 如果此参数不存在 我想返回适当的 HTTP 错误 如何返回 HTTP 错误 400 作为响应 切线 如果所需的参数不存在
  • Request.Form 和 Request.QueryString 之间的区别?

    有人可以告诉我两者之间的确切区别吗Request Form and Request QueryString 我知道一个区别 比如 如果HTTP请求方式为POST 则用户提交的数据在申请表 收藏 如果HTTP请求方法是GET 则用户提交的数据
  • Gridview 错误:对 Bind 的调用格式不正确

    我有以下 gridview 代码
  • 隔离必需的字段验证器?

    我在页面上有两个搜索按钮 一个链接到下拉列表 另一个链接到带有文本框的下拉列表以获取更多搜索条件 我在所有上述控件上都需要现场验证器 当我从第一个下拉列表中选择某些内容并单击相应的搜索按钮时 文本框的字段验证器会触发 从而禁用第一个搜索按钮
  • 执行多个查询时如何保持连接打开?

    我正在使用多个查询从应用程序中的同一服务器提取数据 问题是每次有新查询时我都必须打开一个新连接 是否有可能 打开连接 运行查询 拉取结果 运行另一个查询 拉取另一个结果 运行最终查询 拉取另一个结果 关闭连接 尽管您可能还不知道 但您的做法
  • 如何在 python 中更新/修改 XML 文件?

    我有一个 XML 文档 我想在它包含数据后对其进行更新 我考虑过打开 XML 文件 a 追加 模式 问题是新数据将写入根结束标记之后 如何删除文件的最后一行 然后从该点开始写入数据 然后关闭根标签 当然 我可以读取整个文件并进行一些字符串操
  • 如何在运行 ASP.NET 页面时以编程方式设置表格背景?

    我有一个 aspx 页面 其默认背景颜色是一种 当选择单选按钮的某个选项时 我需要能够以编程方式更改它 我尝试设置表的 ID 字段 但似乎无法在 C 代码隐藏文件中访问它 我原来的表是 table style width 100 backg
  • PHP 读取 XML 播客 RSS 源

    好的 我正在为朋友的播客网站创建一个页面 列出他的播客的所有剧集 本质上 我所寻找的只是如何阅读 RSS 提要 解析出节点 并将信息显示在屏幕上 最终 我将创建一个可以播放剧集的播放器 但那是很久以后的事了 这就是我阅读 RSS 源的方式
  • Razor 与 ASPX 语法的比较 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 最近 我开始研究 MVC3 和 Razor 并阅读了几篇有关这些主题的文章 以更好地理解这个概念 我一直在读Scott Guthrie 的博客文
  • MVC3远程模型验证操作中的参数名称

    我使用远程验证属性SSN属性 在视图页面中我使用通用视图 然后 ssn 字段如下 Html EditorFor model gt model MainModel SSN Html ValidationMessageFor model gt
  • DTD 与 XSD 定义的 XML 语言的范围

    下列命题是否成立 对于每个 DTD 都有一个定义完全相同的语言的 XSD 并且对于每个 XSD 都有一个定义完全相同的语言的 DTD 或者换句话说 任何 DTD 定义的语言集合正是任何 XSD 定义的语言集合 稍微扩展一下这个问题 XML
  • 在代码后面绑定属性

    我有 WPF 应用程序和其中的一个窗口 让我们在我的 xml 中添加这样的内容
  • 在 ASP .NET Core 2.1 Web Api 中启用 CORS

    我正在使用 ASP NET Core 2 1 Web API 和 React 编写应用程序 我的服务器位于 localhost 5000 上 客户端位于 localhost 3000 上 我想用 axios 发送 post 请求 但在浏览器
  • 以编程方式 Godaddy 发送的电子邮件不在“已发送邮件”文件夹中 C#.net

    我正在通过以下方式发送电子邮件ASP NET代码使用godaddy邮件服务器 邮件发送成功 但未存储在已发送邮件文件夹中 我正在使用下面的代码 SmtpClient client new SmtpClient client Host smt
  • 我们应该使用 Eval 还是 Databind 事件?

    当使用 Asp Net 并使用 ListView 等控件创建网站时 使用 Eval 命令是一个好习惯吗 还是应该在 databind 事件中填充文字和数据 取决于您是否想在更新事件上写回数据 在这种情况下数据绑定 如果您只想读取该数据 可以
  • IClaimsTransformation 未触发

    我尝试过实施一个IClaimsTransformation我在 ASP NET CORE 3 1 Web 应用程序中找到的类 public class ClaimsTransformer IClaimsTransformation publ
  • ASP MVC 5 - 403 customError 不起作用

    我正在尝试为我的应用程序创建自定义错误页面 它在大部分情况下都有效 但不适用于403 errors 我的网络配置
  • 如何使用 C# 代码使用超链接的 onClick 事件?

    我正在尝试为页面中的超链接添加条件 而不是仅仅使用特定的链接 例如 a href help Tutorial html Tutorial a 我想为不同的用户显示不同的页面 例如 如果用户以管理员身份登录 他们将看到与普通用户不同的链接 我
  • jQuery AJAX post 收到 405 错误(不允许 HTTP 动词 POST)

    我有以下 jQuery 帖子到 ASP NET webmethod ajax type POST url AjaxWebMethods aspx UpdNote contentType application json charset ut

随机推荐