从 Tumblr 删除后,RSS 删除的条目仍显示在 asp.net reader 中

RSS deleted entries still showing in asp.net reader after deletion from Tumblr

我已经成功创建了一个 ASP.NET RSS 提要 reader,我将它与 Tumblr 一起用于网站。它的工作原理是它获取了最近的 3 个帖子。我有 6 个帖子要测试,我删除了 3 个,但我的 reader 没有显示原来的三个帖子。它一直显示最后删除的 3 个。我已将 RSS 放入 Tumblr 的浏览器中,它显示正确,但我的 reader 一直显示已删除的三个帖子。我尝试清除缓存并更换浏览器,但我的 Feed 中仍然收到已删除的帖子。这是我在下面使用的代码:

前端代码:

<asp:GridView ID="gvRssLI" runat="server">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>

                <div>
                    <h3><%#Eval("Title") %></h3>
                </div>
                <div>
                    <%#Eval("PublishDate" , "{0:d}") %>
                </div>
                <div>&nbsp</div>

                <div align="right">
                    <a href='<%#Eval("Link") %>' target="_blank">Read More...</a>
                </div>

            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

代码隐藏代码:

private void PopulateRssFeed()
{
    string rssFeedUrl = ConfigurationManager.AppSettings["RssFeedUrl"];
    List<Feeds> feeds = new List<Feeds>();
    XDocument xDoc = XDocument.Load(rssFeedUrl);
    var items = (from x in xDoc.Descendants("item").Take(3)
                 select new
                 {
                     title = x.Element("title").Value,
                     link = x.Element("link").Value,
                     pubDate = x.Element("pubDate").Value,
                 });
    if (items != null)
    {
        feeds.AddRange(items.Select(i => new Feeds
        {
            Title = i.title,
            Link = i.link,
            PublishDate = i.pubDate,
        }));
    }

    gvRssLI.DataSource = feeds;
    gvRssLI.AutoGenerateColumns = false;
    gvRssLI.DataBind();
}

我测试了你的代码,它有效。提要显示正确。 Tumblr 的缓存时间似乎很长。但是正如您所说,关于该主题的信息很少,唯一有用的提示是 url.

https://twitter.com/fromedome/status/237250951889698816

但是你知道你可以制作强类型的 GridView 吗?您可以在 GridView 中使用 ItemType,然后您可以使用 Item 访问 Class 属性。这有助于类型安全,因为 Item 已经是正确的数据类型。您必须将 YourNameSpace.Feeds 修改为正确的命名空间。

<asp:GridView ID="gvRssLI" runat="server" ItemType="YourNameSpace.Feeds">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>

                <div>
                    <h3><%# Item.Title %></h3>
                </div>
                <div>
                    <%# Item.PublishDate.ToLongDateString() %>
                </div>

            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

注意:您还可以使用专用库来阅读 RSS 提要,例如 https://github.com/codehollow/FeedReader